目录

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

目录

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

第一步,到要执行的python程序根目录

https://i-blog.csdnimg.cn/blog_migrate/30c8c3c9d94a65227191e163acba225c.png

第二步,后台执行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文件中。

演示如下:

https://i-blog.csdnimg.cn/blog_migrate/a347ed40b1a61d8f329a54eabb6cdc7d.png

其中 [1] 2294 表示当前后台程序的pid号。

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

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

    cat result.txt