答案1
这是我以前也遇到过的问题。我能够使用 systemd 而不是 crontab 来解决这个问题。
如果您查看 systemd.service 手册页,您通常会看到如何配置 systemd 来管理服务。 中可能存在适用于您的系统的示例/usr/lib/systemd/system
或类似内容。
对于您所需要的,服务可能看起来像这样:
[Unit]
Description=Reboot Processes
[Install]
WantedBy=multi-user.target
[Service]
ExecStart=/bin/bash /home/{account}/reboot.sh
Type=simple
User={account}
Group={group}
WorkingDirectory=/home/{account}
Restart=on-failure
将其放入名为 的文件中/etc/systemd/system/reboot-script.service
。然后运行systemctl daemon-reload
(一次,每当您更改时reboot-script.service
告诉 systemd 重新读取配置),然后systemctl start reboot-script.service
启动该过程。
如果一切按预期工作,您可以使用它systemctl enable reboot-script.service
来确保它在启动时启动。
一些说明:
- 确保将上例中的
{account}
和字符串更改为适合您系统的正确用户/组值{group}
WantedBy
在 Install 部分中,告诉 systemd 哪个“目标”(参见man systemd.target
)在你使用以下命令启用该服务时将其拉入systemctl enable
Restart
定义在什么情况下 systemd 将自动重启服务。还有更多与重启相关的选项,您可能想要或不想更改这些选项;请参阅 systemd.service 手册页。
希望这可以帮助。
答案2
我使用类似的东西让我的备用计算机在挂起后的特定时间唤醒。对于关机或重启,脚本将进入 /lib/systemd/system-shutdown