当重要进程正在运行时,最简单的禁用或暂停重启/关机的方法是什么?该过程完成所需的时间太长,无法暂停/继续,因此我想避免在PC运行时关闭它。它是从cron运行的,因此,除非我手动检查正在运行的进程,否则我不会知道它正在运行。谢谢。
当重要进程正在运行时,最简单的禁用或暂停重启/关机的方法是什么?该过程完成所需的时间太长,无法暂停/继续,因此我想避免在PC运行时关闭它。它是从cron运行的,因此,除非我手动检查正在运行的进程,否则我不会知道它正在运行。谢谢。
Answers:
运行which shutdown
以查看关闭程序的路径在哪里。您可以重命名该文件,尽管我建议不要使用它。
另一种(更安全)的方法。使用别名:alias shutdown=' '
类似这样的东西更可逆。如果要阻止所有用户关机,请全局添加别名。
对于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'.
poweroff
以非交互式root用户身份运行
我将禁用/ 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
从技术上讲,它也是一个应用程序,可以将其删除。运行which shutdown
。which
是一个向您显示应用程序路径的命令。就我而言,输出为/sbin/shutdown
。这是一个文件,您可以这样做rm shutdown
。或者,如果要禁用它,请暂时将其复制,然后更改名称并删除原始文件。
如果要这样做,您必须具有足够的权限rm shutdown
。它是只读的,因此为什么会出现错误。请尝试将其删除,root
或者在必要时尝试使用命令rm shutdown
。
-r
标记?您只需要一个文件就可以了,如果您输错了一些内容,灾难就随之而来。