首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改已运行进程的信号配置(SIGHUP)

更改已运行进程的信号配置(SIGHUP)
EN

Stack Overflow用户
提问于 2011-05-23 03:17:42
回答 2查看 513关注 0票数 2

假设我在后台启动了Linux进程。它不是守护进程,只是一个实用程序。如果它得到了SIGHUP,它就会被杀死。

我没有采取"nohup“预防措施。它花费的时间已经比我想象的要长得多了。

运行4小时后,ssh会话可能会断开连接。但我不想失去这个过程。

我想防止它被SIGHUP杀死。

有没有可能制造出等同于

代码语言:javascript
复制
   signal(SIGHUP, SIG_IGN); 

在不重新启动的情况下将其添加到此进程?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-23 03:23:11

使用disown(1)

拒绝:拒绝-h工作规范...从当前shell中删除作业。

从活动作业的表中删除每个JOBSPEC参数。在没有任何JOBSPEC的情况下,shell使用其当前作业的概念。选项:-a如果没有提供JOBSPEC,则删除所有作业-h标记每个JOBSPEC,这样,如果shell收到SIGHUP -r,则不会向作业发送SIGHUP仅删除正在运行的作业

Detaching a process from terminal, entirely

"disown“是一个bash内置函数,用于从shell的作业列表中删除shell作业。这基本上意味着你不能再对它使用"fg","bg“,但更重要的是,当你关闭你的shell时,它不会挂起,也不会再向那个孩子发送SIGHUP。与"nohup“不同的是,"disown”是在进程启动和后台运行后使用的。

票数 3
EN

Stack Overflow用户

发布于 2011-05-23 03:39:23

Diswon是这次很好的解决方案。将来,一个很好的解决方法是使用" screen“工具:如果您的ssh会话断开,您可以重新连接并重新获取仍在运行的屏幕。

但是,我不知道如何将当前进程放入屏幕会话中,因此它不能解决您当前的情况。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6090160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档