-u 的作用
nohup python myscript.py > nohup.out 2>&1 &
python的输出是有缓冲的,即使在py脚本中每次遍历都有打印输出,但是因为缓冲的作用,我们不能在nohup.out日志中立即看到打印的输出。
加上-u参数,使得python不使用缓冲。
nohup python myscript.py -u > nohup.out 2>&1 &
解析:
1 nohup 不挂断地运行命令,忽略所有挂断信号(SIGNUP信号),比如当账号注销时。
最后的&:表示后台运行。
nohup command &,表示后台运行nohup命令。
2 linux中的0表示标准输入,1表示标准输出,2表示标准错误输出。
3 > 表示覆盖式重定向。正常输出是把内容输出到显示器上,重定向是把内容输出到文件中。 command > xxx.txt,将输出重定向到xxx文件中。
4 >> 表示追加式重定向。command >> xxx.log,将输出重定向追加到xxx.log文件中。
5 2 > &1 ,2是标准错误输出,1是标准输出,这里的&表示引用的意思,对标准输出的引用。所以这个命令就表示将标准错误输出也重定向到标准输出指向的文件中。