当前位置:   article > 正文

通过SSH操作时如何保证终端断开时任务继续执行_怎么设置网络断开时 执行任务

怎么设置网络断开时 执行任务

参考https://blog.csdn.net/longshenlmj/article/details/43309995

https://www.ibm.com/developerworks/cn/linux/l-cn-nohup/index.html

 

原理如下:

在Linux/Unix中,有这样几个概念:
进程组(process group):一个或多个进程的集合,每一个进程组有唯一一个进程组ID,即进程组长进程的ID。
会话期(session):一个或多个进程组的集合,有唯一一个会话期首进程(session leader)。会话期ID为首进程的ID。
会话期可以有一个单独的控制终端(controlling terminal)。与控制终端连接的会话期首进程叫做控制进程(controlling process)。当前与终端交互的进程称为前台进程组。其余进程组称为后台进程组。
根据POSIX.1定义:
挂断信号(SIGHUP)默认的动作是终止程序。
当终端接口检测到网络连接断开,将挂断信号发送给控制进程(会话期首进程)。
如果会话期首进程终止,则该信号发送到该会话期前台进程组。
一个进程退出导致一个孤儿进程组中产生时,如果任意一个孤儿进程组进程处于STOP状态,发送SIGHUP和SIGCONT信号到该进程组中所有进程。
因此当网络断开或终端窗口关闭后,控制进程收到SIGHUP信号退出,会导致该会话期内其他进程退出。
————————————————
版权声明:本文为CSDN博主「longshenlmj」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/longshenlmj/article/details/43309995

 

 

如何让终端断开时任务继续执行:

nohup,

对已经运行中的任务,通过disown来设置

 

如何查看后台执行中的任务:

程序运行后用

ps -ef  | grep '进行id'

或者ps -aux 来查看后来多少进行正在运行,grep自己的用户名,可以看到对应程序

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/191111
推荐阅读
相关标签
  

闽ICP备14008679号