假设在终端上启动运行了一个程序,跑了几天,如果不小心把terminal关了,那么程序就会终止,这是SIGHUP信号的原因,即使通过bg置为后台运行同样会如此,应该让程序成为一个daemon,步骤如下:
1.Ctrl+z 暂停程序的运行,可以看到程序的作业号,假设为1;
2.bg %1 置为后台运行;
3. disown -h %1 使其不受终端关闭的影响。
=> The disown command on ksh shell causes the shell not to send a HUP signal to each given job, or all active jobs if job is omitted, when a login shell terminates.
=>The disown command on bash shell can either remove jobs or causes the shell not to send a HUP signal to each given job or all jobs.
实例:
./main.py 之前是终端上正常运行的普通程序。
按上面操作之后,通过 ps -ef | awk ‘$3 == 1‘ 命令可以看到程序变成了daemon.
参考:
1.http://stackoverflow.com/questions/625409/how-do-i-put-an-already-running-process-under-nohup
时间: 2024-10-22 23:25:05