Pil*_*ot6 15 shutdown backup scripts
我使用脚本对 btrfs 分区从一个磁盘到另一个磁盘进行增量备份。
该脚本由 cron.weekly 在一天的随机时间启动。
如果我在脚本运行时关闭系统,我会遇到删除旧备份而未创建新备份的麻烦。
有没有办法设置系统等待脚本完成?
我正在将 Ubuntu 16.04 与 systemd 一起使用。
Rin*_*ind 20
对于使用 systemd(默认)的 Ubuntu 16.04+。
systemd-inhibit --why="Wait for this script to finish" bash script.sh
Run Code Online (Sandbox Code Playgroud)
===
测试:
$ systemctl poweroff
Operation inhibited by "bash script.sh" (PID 23912 "systemd-inhibit", user rinzwind),
reason is "Wait for this script to finish".
Please retry operation after closing inhibitors and logging out other users.
Run Code Online (Sandbox Code Playgroud)
===
有7个锁:
sleep 禁止(非特权)用户请求的系统挂起和休眠shutdown 禁止(非特权)用户请求的高级系统断电和重启idle 禁止系统进入空闲模式,可能导致系统自动挂起或关闭,具体取决于配置。handle-power-key 禁止系统电源硬件密钥的低级(即登录内部)处理,允许(可能是无特权的)外部代码改为处理事件。handle-suspend-key 禁止系统硬件挂起键的低级处理。handle-hibernate-key 禁止系统硬件休眠键的低级处理。handle-lid-switch 禁止对 systemd 硬件盖子开关的低级处理。您可能还想防止suspend,idle和hibernate。
fd = Inhibit("shutdown:idle", "Package Manager", "Upgrade in progress...", "block");
/* ...
do your work
... */
close(fd);
Run Code Online (Sandbox Code Playgroud)
与此类似,您可以编写您的版本并在此脚本的末尾添加一个“关闭”(或添加一种方法来确定关闭需要是下一个操作)。
| 归档时间: |
|
| 查看次数: |
1688 次 |
| 最近记录: |