如何防止 systemctl reboot 或 systemctl poweroff 执行?

cra*_*ick 4 systemd

我在小型 SBC 中做了很多 SSH 工作,并且经常运行sudo systemctl rebootsudo systemctl poweroff

我的 SSH 会话经常在我没有注意到的情况下断开连接,我不小心重启了自己的机器。有什么方法可以防止重新启动和关机,或者甚至更好地在我发出这些命令时强制我输入 yes?

我知道我可以为这些命令取别名并重新训练我的大脑以停止输入这些命令,但这并不理想。此外,我仍然希望能够通过 sudo 运行 systemctl 的其余命令,所以我不想阻止整个 systemctl 在 sudo 下运行。

max*_*zig 5

您可以使用它reboot-guard来防止工作站意外重启。例子:

在开始处理 SBC 之前的某个时间点激活:

# rguard -1
Run Code Online (Sandbox Code Playgroud)

这会阻止各种重启,例如shutdown -r now,从图形桌面环境触发的重启等。

当你真的想重启时,你可以像这样释放锁:

# rguard -0
Run Code Online (Sandbox Code Playgroud)

Rguard 还具有一些高级选项,即根据外部情况进行更动态和自动的激活/停用。但是对于许多用例来说,基本功能应该足够了。

(在 Fedora 27 下测试过。)