如何禁用关机以使重要进程不被中断?

如何禁用关机以使重要进程不被中断?

当重要进程运行时禁用或暂时暂停重新启动/关闭的最简单方法是什么?该过程需要很长时间才能完成,并且无法暂停/恢复,因此我希望避免在电脑运行时关闭它。它是从 cron 运行的,因此除非我手动检查正在运行的进程,否则我不会知道它正在运行。谢谢。

答案1

对于使用 systemd 的较新系统,这个问题已通过 解决systemd-inhibit。使用示例:

systemd-inhibit --why="Doing weekly backup" bash my-backups.sh

然后,如果用户尝试关闭,除非强制,否则将不允许关闭。

❯ systemctl poweroff
Operation inhibited by "bash my-backups.sh" (PID 2414 "systemd-inhibit", user ntrrgc),
reason is "Doing weekly backup".
Please retry operation after closing inhibitors and logging out other users.
Alternatively, ignore inhibitors and users with 'systemctl poweroff -i'.

答案2

运行which shutdown看看关机程序的路径在哪里。您可以重命名该文件,但我建议不要这样做。

另一种(更安全的)方法。使用别名:alias shutdown=' ' 这样的事情更可逆。如果您试图阻止所有用户关闭,请全局添加别名。

答案3

在关键任务服务器中禁用“shutdown/reboot/poweroff/halt/hostname”之类的命令

chmod 0 /sbin/shutdown

然后如果您需要使用它,请将其 chmod 回chmod 0755.

答案4

我想防止本地用户在升级过程中关闭笔记本电脑。禁用输入设备是最好的方法。对我来说,禁用鼠标就足够了,但也可以禁用键盘。

当然有一个缺点,这段时间电脑不能用。

在 unix 上禁用键盘和鼠标输入(在 X 下)

相关内容