如何使用systemd推迟关机?

Jas*_*sio 6 shutdown systemd

我运行一台台式计算机,它通常在晚上关闭,白天也经常关闭,当不使用或无人看管时。我通常从 GUI (KDE 4.10) 关闭它,有时 - 从 KDM,有时我也使用一个很好的旧 /sbin/shutdown。

现在:碰巧一个任务正在运行,不应中断,例如备份,视频录制等。出于显而易见的原因,在这种情况下,我希望将关闭推迟到作业完成。理想情况下,应该向用户发出警告,但这并不总是可行的。如何实现这一目标?

前段时间我写了一个在运行级别 0 和 6 中执行的脚本,它检查标志文件的存在,并将该过程推迟到文件消失。它并不理想,但足够有效。但是在我的发行版的最新版本中,init 被 systemd 取代,它并行运行 /etc/init.d/ 脚本,因此 hack 不再起作用。

如果它有任何重要性,我使用 OpenSuse 12.3、内核 3.7.10、KDE ​​4.10。

str*_*gee 6

你应该使用systemd-inhibit. 为了防止系统宕机,您需要做的就是在命令前加上“systemd-inhibit”。

例如,如果我想确保在刻录 CD 时系统不会关闭、空闲、睡眠等,我会这样做:

systemd-inhibit brasero
Run Code Online (Sandbox Code Playgroud)

brasero被关闭,该系统将被允许重新执行正常关机政策。

有关更多信息,请参阅 man systemd-inhibit