当前位置: 代码迷 >> 综合 >> linux杂谈之程序后台运行
  详细解决方案

linux杂谈之程序后台运行

热度:29   发布时间:2024-02-08 18:25:46.0

之前写的一篇bash工作管理

一    场景引入

       我们经常会碰到这样的问题,用 telnet/ssh 登录了远程的 Linux 服务器,运行了一些耗时较长的任务, 结果却由于网络的不稳定导致任务中途失败。如何让命令提交后不受本地关闭终端窗口/网络断开连接的干扰呢?

当用户注销(logout)或者网络断开时,终端会收到 HUP(hangup)信号从而关闭其所有子进程。因此,我们的解决办法就有两种途径1)要么让进程'忽略 HUP 信号'  -->  'nohup'2)要么让进程运行在'新的会话里'从而成为"不属于此终端的子进程" -->  'setsid'

二    案例

可以'针对不同的场景'选择'不同的方式'来处理这个问题

(1)nohup

(1)  nohup命令 可以将'程序以忽略挂起信号'的方式运行'running'起来,被运行的程序的输出信息将'不会显示到终端'