Linux服务器后台执行python代码并重定向保存输出结果

第一步,到要执行的python程序根目录
Linux上演示代码
第二步,后台执行python程序,并将结果重定向到某个结果文件中,格式如下:

nohup python -u XXX.py >> result.txt 2>&1 &

解释

codedescription
>>为重定向追加输出log到现有result.txt文件;如果写>重定向的话,则是清空原文件result.txt,再输入
python -u这个非常重要, 由于python有缓冲机制,print不一定会立刻输出到文件!!!
加了-u可以让stdout等强制无缓冲, 立刻输出到文件!
2>&1将错误重定向到标准输出中(意思是将不同等级的输出都显示在一个文件里)
最后一个&表明此python在后台运行

对上面的数字表示的含义补充解释

  • 0:代表 – stdin (standard input)标准输入
  • 1: 代表– stdout (standard output)标准输出
  • 2:代表– stderr (standard error) 标准错误
  • 2>&1: 是将标准错误(2)重定向到标准输出(&1),标准输出(&1)再被重定向输入到result.txt文件中。

演示如下:
在这里插入图片描述
其中 [1] 2294 表示当前后台程序的pid号。

其他

  1. 想要关闭后台执行的这个程序,如下:

    kill 2294    # kill + pid 即可
    
  2. 想要查看输出的结果,在同一目录下:

    cat result.txt
    
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 游动-白 设计师:上身试试 返回首页