nohup后台执行 命令用法
nohup python -u test.py > log.txt 2>&1 &
nohup python -u test.py >> log.txt 2>&1 &
命令/参数释义:
(1) nohup
:no hang up的缩写,意指不间断、不挂断。当利用远程服务器或在账号退出时不想让进程中断,则可用nohup后台运行。
(2) -u
:nohup执行python命令时,因python的输出有缓冲机制,会使得log无法实时显示,此时可通过-u
参数,使python不启用缓冲。
(3) 2>&1
:将标准错误内容(2
)重定向输入到标准输出(1
)中。
0
表示stdin标准输入,用户键盘输入的内容;
1
表示stdout标准输出,输出到显示屏的内容;
2
表示stderr标准错误,报错内容 ;
(4) &
:最后一个&
表示后台运行;而2>&1
中的&
则是为了区别文件1
和标准输出1
(假如用2>1
则成了将标准错误内容输出到文件1
中)。
(5) >
与 >>
:>>
表示追加,>
会将原log内容清空。
(6) test.py >> log.txt
等价于test.py 1 >> log.txt
,只是标准输入1
被省略了。
整体意义:表示将python代码执行的标准错误和标准输出的内容都重定向到log.txt文件中,命令后台执行。