如何禁用关闭功能以使重要过程不会被中断?


10

当重要进程正在运行时,最简单的禁用或暂停重启/关机的方法是什么?该过程完成所需的时间太长,无法暂停/继续,因此我想避免在PC运行时关闭它。它是从cron运行的,因此,除非我手动检查正在运行的进程,否则我不会知道它正在运行。谢谢。


5
可能的重复:SO:暂时防止linux关闭,答案提示可以在各个级别上进行操作,即shell脚本或桌面环境的电源管理。
sr_

如果没有运行级别的解释或没有解释的链接,我认为答案不够具体。它不在U&L SE中。我可以问一下您使用的发行版和版本吗?
2012年

无需修改关闭过程,而是编写包装器,以便作业指示已完成,无论是邮寄还是触摸文件。测试作业是否完成,然后运行关机。(cron将其作业的输出邮寄给所有者,但是可以对其进行调整)。
bsd 2012年

Answers:


1

运行which shutdown以查看关闭程序的路径在哪里。您可以重命名该文件,尽管我建议不要使用它。

另一种(更安全)的方法。使用别名:alias shutdown=' ' 类似这样的东西更可逆。如果要阻止所有用户关机,请全局添加别名。


我正在考虑使用别名,现在只需要编写脚本即可。谢谢!
zang3tsu 2012年

那么其他命令(例如暂停或关机)呢?您是否还需要创建别名'/重命名它们?
mintyfreshpenguin 2014年

17

对于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'.

但是存在一个问题:以root身份非交互地运行它会忽略锁。github.com/systemd/systemd/issues/2680
艾丽西亚

我认为您误读了该错误报告,他们正在谈论poweroff以非交互式root用户身份运行
Ferrybig

我怎么会误读错误报告?:S
艾丽西亚(Alicia)

2

禁用关键任务服务器中的“关机/重启/关机/停止/主机名”命令

chmod 0 /sbin/shutdown

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


1
怎么样haltpoweroffsystemctl poweroff
马丁·尤丁

1

我将禁用/ etc / sudoers文件中的命令,以便只有root才能执行它。

在/ etc / sudoers中

# Cmnd alias specification
Cmnd_Alias     SHUTDOWN = /sbin/shutdown

# User privilege specification
root    ALL=(ALL:ALL) ALL
vmule   ALL=(ALL:ALL) ALL, !SHUTDOWN

当我尝试运行命令时:

vmule@debian:~$ sudo /sbin/shutdown  -r now
Sorry, user vmule is not allowed to execute '/sbin/shutdown -r now' as root on debian.vm

你能详细说明你的答案吗?shutdown可能未在/ etc / sudoers中明确指定。
Archemar 2014年

当然,我用更好的解释来编辑答案。干杯
vmule 2014年


-1

shutdown从技术上讲,它也是一个应用程序,可以将其删除。运行which shutdownwhich是一个向您显示应用程序路径的命令。就我而言,输出为/sbin/shutdown。这是一个文件,您可以这样做rm shutdown。或者,如果要禁用它,请暂时将其复制,然后更改名称并删除原始文件。

如果要这样做,您必须具有足够的权限rm shutdown。它是只读的,因此为什么会出现错误。请尝试将其删除,root或者在必要时尝试使用命令rm shutdown


3
为什么要-r标记?您只需要一个文件就可以了,如果您输错了一些内容,灾难就随之而来。
MadTux
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.