需求
1、当网络连接状态不好的时候,不会导致命令中断
2、用户需要长时间运行的命令。
1、nohup/setsid/&
参考资料:
https://blog.csdn.net/stpeace/article/details/76389073
https://blog.csdn.net/u011095110/article/details/78666833
https://www.ibm.com/developerworks/cn/linux/l-cn-nohup/
先来图
以上解释下
1、先nohup运行ping命令,会发现其是在bash下运行的进程
2、然后Ctrl+c,发送了信号给bash,nohup被中断了
3、nohup+&,
4、此时logout退出终端,发现ping命令依然在,但是其父进程id为1。
2、disdown
3、screen
参考资料:
http://man.linuxde.net/screen
https://wiki.archlinux.org/index.php/GNU_Screen_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)
别说话,先来张图
参数 | 含义 |
---|---|
命令行参数 | |
-ls | 显示目前所有的screen作业 |
-wipe | 检查目前所有的screen作业,并删除已经无法使用的screen作业 |
-S | 新建一个会话 |
-d | 剥离一个会话 |
-r | 重新attach一个会话 |
-x | 共同加入一个会话 |
会话窗口操作 | |
C+a d | detach,暂时离开当前session |
C+a k | kill window,强行关闭当前的 window |
C+a S | 横向分屏 |
C+a tab键 | 在各个分屏间切换 |
C+a 竖线 | 垂直分屏,需要screen版本大于等于4.1版本 |
exit | 关闭当前的screen作业 |
4、tmux
参考资料:
https://www.cnblogs.com/cbscan/articles/2888595.html
https://www.cnblogs.com/kevingrace/p/6496899.html
https://www.cnblogs.com/maoxiaolv/p/5526602.html
https://www.linuxprobe.com/better-screen-tmux.html
http://man.openbsd.org/OpenBSD-current/man1/tmux.1
https://www.jianshu.com/p/fd3bbdba9dc9
5、screen和tmux比较:
https://www.cnblogs.com/bamanzi/p/switch-tmux-to-gnu-screen.html
https://yanyiwu.com/work/2016/03/24/from-screen-to-tmux.html
6、总结
1、nohup一开始是在当前shell下的一个子进程。当退出ssh时,会将作业放到init下的一个子进程。
2、screen是一个screen作业一个init下的子进程
3、tmux是一个init下的子进程。