是否有一种方法可以使某个脚本的SIGSTOP无效?

问题描述 投票:0回答:1

我已经创建了一个脚本,并且希望它实际上对SIGSTOP具有“免疫力”。我了解SIGKILL和SIGSTOP不能被捕获或忽略。我知道Linux的初始化系统由于在其信号结构标志上具有SIGNAL_UNKILLABLE标志而无法接收到“致命”信号(尽管该语句的后半部分在我头上飞得很高)。我愿意编辑内核以授予此脚本权限,唯一的问题是我不知道怎么做。所以,我的问题是,是否有一种方法可以使某个脚本/进程的SIGSTOP无效?

我能够处理SIGKILL,这要归功于脚本的服务文件中的Restart参数(使用systemd),当我在手册中滚动查找类似的挂起进程时,还没有发现任何东西。

是否有与SIGSTOP引起的进程暂停类似的Restart = always总是类似?

我宁愿不必经历更改内核中或与内核相关的事情的过程,但是如果这是我唯一的方式。

谢谢。

linux linux-kernel signals systemd
1个回答
0
投票

好的,我能想到的最好的解决方案是SELinux。

SELinux是由NSA创建的内核插件,后来被发布给公众。它通常在Linux系统上使用,默认情况下在Android设备上使用。 SELinux允许创建“上下文”。上下文是提供给文件和进程的附加标签,允许对责任和权限进行细分。

这如何解决您的问题?好了,您可以为用户进程(甚至对于root用户)限制SELinux权限,这样甚至根本不允许您发信号通知其他进程。实际上,您可以防止与其进行任何交互。如果愿意,您甚至可以阻止自己关闭SELinux(尽管从操作的角度来看,最好不要这样做)。在某种程度上,这可能是您接近无法破解的解决方案的最接近的解决方案。话虽如此,为此目的而进行的SELinux设置和配置并不完全是在公园散步。文档是有限的(但存在),特定于发行版的,在某些情况下甚至是深奥的。我自己对SELinux确实有一些经验。如果您有足够的兴趣,我可以尝试组合一个通用的解决方案,该解决方案适用于您的用例和选择的发行版。

© www.soinside.com 2019 - 2024. All rights reserved.