nohup命令使程序忽略所有挂断(SIGHUP)信号。
在注销后使用 nohup 命令运行后台中的程序,要运行后台中的 nohup 命令,添加 & 到命令的尾部。
无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的 nohup.out 文件中。
输出
STDIN标准输入,STDOUT标准输出,STDERR标准错误输出,即:0,1,2
nohup python app.py 2 > nohup.log //将标准错误输出到当前目录nohup.log文件中,而标准输出依然输出到命令行
nohup python app.py >/dev/null // /dev/null文件是linux中一个黑洞,将标准输出和标准错误输出输出到/dev/null文件文件中
重定向
2>&1 将标准错误输出重定向到标准输出
最后添加&
加&,关闭终端,命令依然运行
不加&,关闭终端,结束命令
完整命令
nohup python app.py 1 > log/app.log 2>&1 & //标准输出到log/app.log文件,标准错误输出重定向到标准输出,同样输出到log/app.log文件,关闭终端依然运行。
或者
nohup python app.py > log/app.log &
注:如果使用nohup后直接关闭终端软件会导致nohup对应进程被关闭。需要先返回到shell命令行,使用exit退出。