之前写的一篇bash工作管理
一 场景引入
我们经常会碰到这样的问题,用 telnet/ssh 登录了远程的 Linux 服务器,运行了一些耗时较长的任务, 结果却由于网络的不稳定导致任务中途失败。如何让命令提交后不受本地关闭终端窗口/网络断开连接的干扰呢?
当用户注销(logout)或者网络断开时,终端会收到 HUP(hangup)信号从而关闭其所有子进程。因此,我们的解决办法就有两种途径1)要么让进程'忽略 HUP 信号' --> 'nohup'2)要么让进程运行在'新的会话里'从而成为"不属于此终端的子进程" --> 'setsid'
二 案例
可以'针对不同的场景'选择'不同的方式'来处理这个问题
(1)nohup
(1) nohup命令 可以将'程序以忽略挂起信号'的方式运行'running'起来,被运行的程序的输出信息将'不会显示到终端'