在Linux执行任务时,如果键入Ctrl+C退出进行其他任务或者关闭当前session,当前任务就会终止。
要想不让进程停止或者让进程在后台运行,就需要一些命令,nohup和&就是一种非常好的方式。
(1)使用&后台运行程序:
python test.py &
- 结果会输出到终端
- 使用Ctrl + C发送SIGINT信号,程序免疫
- 关闭session发送SIGHUP信号,程序关闭
(2)使用nohup运行程序:
nohup python test.py
- 结果默认会输出到nohup.out
- 使用Ctrl + C发送SIGINT信号,程序关闭
- 关闭session发送SIGHUP信号,程序免疫
(3)使用nohup和&配合来启动程序:
nohup python test.py &
- 同时免疫SIGINT和SIGHUP信号
- 通过kill命令来杀死进程,
ps -ef|grep test.py
查看进程状态
(4)使用nohup和&配合来启动程序,将信息记录到日志里
nohup python test.py > test.log 2>&1 &
- 如果不指定输出文件,默认输出到当前目录下的nohup.out文件
- 如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。