Linux服务器后台执行python代码并重定向保存输出结果
目录
Linux服务器后台执行python代码并重定向保存输出结果
第一步,到要执行的python程序根目录
第二步,后台执行python程序,并将结果重定向到某个结果文件中,格式如下:
nohup python -u XXX.py >> result.txt 2>&1 &
解释
code | description |
---|---|
>> | 为重定向追加输出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号。
其他
想要关闭后台执行的这个程序,如下:
kill 2294 # kill + pid 即可
想要查看输出的结果,在同一目录下:
cat result.txt