20210110关于让程序后台运行的几种方式 - ziyouzy/2021blog GitHub Wiki
1. 程序后加上“&” ,即 “./myjob &”, 将命令放入到一个作业队列中,可以用命令“jobs” 查看
2. 将1中的命令放在 “()”中, 即 “(./myjob &)”,所提交的作业并不在作业列表中,是无法通过jobs来查看的。
3. 使用"nohup", 即 “nohup ./myjob &”,忽略hangup信号,防止shell关闭时程序停掉。
4. 使用"setsid", 即“setsid ./myjob”。
5. 对已经运行的程序可以用 “disown -hmyjob” 来使某个作业忽略HUP信号。
6. 使用“screen". screen 下的操作会在screen下运行,无法在jobs中查看到。常用的命令有:
a) 新建一个screen: screen-S my_screen_name. 建好后就可以进行所需要的操作了。
b) 暂时断开screen: Ctrl-a d
c) 重新打开screen: Ctrl-a screen_id
d) 查看所有screen状态: screen -ls
e) 终止screen: screen -S my_screen_name -Xkill
f) 在当前窗口新建窗口: Ctrl-a c
g) 退出当前窗口: exit
h) 显示所有窗口列表:Ctrl-a w
这里补充下nohup的知识点:
https://blog.csdn.net/u014106566/article/details/83859121
然后再深入了解下linux的信号机制,暂时并不需要学会如何编辑信号:
https://www.jianshu.com/p/f445bfeea40a
https://blog.csdn.net/c1204611687/article/details/85317035