美文网首页linux
Linux后台持续运行py程序并输出到日志文件

Linux后台持续运行py程序并输出到日志文件

作者: top_小酱油 | 来源:发表于2020-04-04 12:48 被阅读0次

    现有sample.py程序其内容如下:

    for i in range(1000):
        if i % 3 == 0:
            print(i)
    

    直接在终端执行,命令:

    python sample.py
    

    在后台部署执行,并输出到日志文件,命令:

    nohup python -u sample.py > zdz.log 2>&1 &
    

    其中15075为进程号。

    • 前面加nohup 添加-u参数
    • >zdz.log 将输出信息输出到zdz.log(名称可以任意)文件中
    • 2输出错误信息到提示符窗口
    • 1表示输出信息到提示符窗口, 1前面的&注意添加, 否则还会创建一个名为1的文件
    • 最后的&表示后台运行
      查看日志文件:
    • tail -f zdz.log 实时查看日志文件
    • cat zdz.log 查看全部输出

    如果使用GPU(后台)运行程序的话,命令:

    CUDA_VISIBLE_DEVICES=2 nohup python -u train.py > zdz.log 2>&1 &
    CUDA_VISIBLE_DEVICES=0,1,2,3 nohup python -u train.py > zdz.log 2>&1 & #
    多GPU并行/数据并行
    

    如果嫌上述命令太长,尤其是.py脚本后有各种各样的命令行参数时,可以提前把一长串命令放在.sh脚本中,如放在run.sh中:

    CUDA_VISIBLE_DEVICES=2 
    nohup python -u train.py --args='xx'
    ...
     > zdz.log 2>&1 &
    

    运行:

    bash run.sh

    其中,CUDA_VISIBLE_DEVICES=2 表示使用2号GPU,可以使用命令:

    nvidia-smi
    

    查看GPU使用状态,在选择使用Memory-Use小的GPU:

    查看Python程序的运行信息:

     ps aux | grep python
    

    杀死某个进程(上图红色部分为进程号):

    kill -9 进程ideg. kill -9 11778
    

    相关文章

      网友评论

        本文标题:Linux后台持续运行py程序并输出到日志文件

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