Linux学习笔记(三):如何在ubuntu上后台运行python程序?

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
    原文作者:SpareNoEfforts
    原文地址: https://www.jianshu.com/p/c3855fe93002
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞