python后台运行方式
在linux中执行python程序的时候,我们通常会用python xx.py命令来执行,但这样执行的程序在关闭linux的控制台后,执行的程序就会退出,要让程序关闭后继续执行该怎么办?
要让python程序在关闭控制台后继续执行,我们需要使用nohub命令。
1 | $ nohup python -u xx.py > log.out 2>&1 & |
1 1
是标准输出(STDOUT)的文件描述符,2
是标准错误(STDERR)的文件描述符1>log.out
简化为>log.out
,表示把标准输出重定向到log.out这个文件
2 2>&1
表示把标准错误重定向到标准输出,这里&1
表示标准输出,为什么需要将标准错误重向到标准输出?这是因为标准错误没有缓冲区,而STOUT有,这就会导致log.out文件被两次打开,而STDOUT和STDERR将会竞争覆盖。