【发布时间】:2020-01-22 03:44:37
【问题描述】:
我创建了一个脚本,我希望它对 SIGSTOP 几乎“免疫”。
我了解 SIGKILL 和 SIGSTOP 都不能被捕获或忽略。
我知道 Linux 的 init 系统无法接收“致命”信号,因为它的信号结构标志上有 SIGNAL_UNKILLABLE 标志(尽管该句子的后半部分大部分时间都在我脑海中)。
我愿意编辑我的内核以授予此脚本豁免权,唯一的问题是我不知道如何。
所以,我的问题是,有没有办法使某个脚本/进程的 SIGSTOP 无效?
由于我的脚本的服务文件中的 Restart 参数(使用 systemd),我能够处理 SIGKILL,虽然我翻阅了手册,为暂停的进程寻找类似的东西,但我还没有找到任何东西.
SIGSTOP导致进程挂起是否有类似Restart=always的东西?
我宁愿不必经历改变内核中或与内核相关的事情的过程,但如果这是我唯一的方式。
谢谢。
【问题讨论】:
-
这闻起来像XY problem。为什么需要消除这些信号?为什么/谁在发送这些信号?
-
@kaylum 我不想说,但这是为了帮助我戒掉色情习惯。
-
嘿,蒂格,我真诚地感谢您坦率地说明您为什么想要解决这个问题。我还没有解决方案,但我正在努力解决。
-
@TeagueFoster 即使您将 root 密码提供给其他人,您仍然可以配置
sudo以允许您运行一些管理命令,例如apt来安装软件包。也就是说,您可以将一些“安全”的命令列入白名单。 -
嘿蒂格,至少有一个基本答案可以解决您提出的问题。但是,为了暂时脱离角色,我可能会建议解决您的根本问题的绝对最佳方法是找到可以让您负责的人。
标签: linux linux-kernel signals systemd