美文网首页python与TensorflowLinux
Linux——如何在ubuntu上后台运行python程序?

Linux——如何在ubuntu上后台运行python程序?

作者: SpareNoEfforts | 来源:发表于2018-11-20 09:57 被阅读67次

    1. 在终端运行python的时候可以用:

    • 告诉程序只能看到1号GPU,其他的GPU它不可见
    CUDA_VISIBLE_DEVICES=1 python your_file.py
    
    • 告诉程序能看到12号GPU,其他的GPU它不可见
    CUDA_VISIBLE_DEVICES=0,1 python your_file.py
    CUDA_VISIBLE_DEVICES="0,1" python your_file.py
    

    2. 在后台运行命令,使得有缓冲输出

    nohup  python  [PythonSourceFile]  ( >  [log file] )    2>&1   &
    

    如果没有指定输出文件,nohup会将输出放到nohup.out文件中,但在程序运行过程中nohup.out文件中不能实时的看到python的输出,原因是python的输出有缓冲。
    举例说明nohup python -u your_file.py > my_out.log 2>&1 &

    3. 在后台运行命令,使得无缓冲输出

    • 方案1
      使用-u参数,使python输出不进行缓冲,命令格式如下
    nohup   python   -u  startup.py    >   abc.log   2>&1  &
    
    #使用GPU的时候并且无缓冲输出:
    使用GPU的时候并且无缓冲输出:
    CUDA_VISIBLE_DEVICES=1 nohup python -u yourfile.py >my_out 2>&1 &
    

    #注意CUDA_VISIBLE_DEVICES在nohup前面

    • 方案二
    export PYTHONUNBUFFERED=1
    nohup python (> [log file]) 2>&1 &
    

    4. 如何kill nohup的进程

    #筛选需要kill的进程pid
    ps -aux|grep "process name"
    kill -9 pid
    

    相关文章

      网友评论

        本文标题:Linux——如何在ubuntu上后台运行python程序?

        本文链接:https://www.haomeiwen.com/subject/fopafqtx.html