用Xshell连接服务器,打算在服务器上后台运行,但是一旦会话连接断开,代码也会结束执行。

使用 nohup 命令挂起服务并输出日志

nohup python -u test.py > out.log 2>&1 &

nohup sh **.sh > /dev/null 2>&1 &

其中参数:
​​​-u​​​ 是为了取消缓存,让代码输出结果可以直接进入日志文件out.log
​​​>​​​ 表示把标准输出(STDOUT)重定向到 那个文件,这里重定向到了out.log
​​​2>&1​​​:将标准错误输出转变化标准输出,可以将错误信息也输出到日志文件中(0-> stdin, 1->stdout, 2->stderr)
​​​&​​​ 表示在后台执行脚本
使用 ​​​jobs -l​​​ 在当前终端可查看后台正在执行的程序
使用​​​ps -aux |grep username​​​ 查看后台正在执行的程序
或者使用 ​​​ps -def | grep​​查看后台正在执行的程序

只记录异常日志(推荐)

nohup python -u test.py >/dev/null 2>error.log  2>&1 &

不记录任何日志

nohup python -u test.py >/dev/null  2>&1 &

如果不将 nohup 命令的输出重定向,输出将附加到当前目录的 nohup.out 文件中。如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中