在Linux系统中,有时我们可能会遇到更换硬件、更改系统配置、死机等情形,这时我们需要让机器重启以使新的设置生效或者解决系统问题,本文将详细介绍如何配置Linux系统在出现这些情形时自动重启。
1、使用shutdown命令
shutdown命令是Linux系统中用于关闭计算机的命令,它可以通过发送信号给init进程来实现关机、重启等操作,要实现在出现特定情形时自动重启,我们可以将shutdown命令与crontab定时任务结合起来。
打开终端,输入以下命令来编辑crontab定时任务:
crontab -e
在打开的文件中添加一行,指定在何种情况下执行shutdown命令,我们要在每天凌晨3点自动重启计算机,可以添加以下内容:
0 3 * * * /sbin/shutdown -r now
这里,0 3 * * *
表示每天凌晨3点执行命令,/sbin/shutdown -r now
表示立即重启计算机,保存并退出文件。
2、使用systemd服务
systemd是Linux系统中的一种初始化系统,它可以管理系统的各种服务和进程,要实现在出现特定情形时自动重启,我们可以创建一个systemd服务。
创建一个名为reboot.service的文件,内容如下:
[Unit] Description=Reboot the system After=network.target [Service] Type=oneshot ExecStart=/sbin/shutdown -r now RemainAfterExit=yes [Install] WantedBy=multi-user.target
将该文件复制到/etc/systemd/system/目录下:
sudo cp reboot.service /etc/systemd/system/
接下来,启用并启动该服务:
sudo systemctl enable reboot.service sudo systemctl start reboot.service
现在,每次运行该服务时,计算机都会立即重启,要修改重启的时间,可以修改ExecStart行中的参数,要将重启时间设置为每天凌晨3点,可以将其修改为:
ExecStart=/sbin/shutdown -r +3h now
3、使用watchdog工具
watchdog是一个用于监控系统状态的工具,当检测到系统出现问题时,它可以自动重启计算机,要使用watchdog实现自动重启,首先需要安装watchdog软件包:
sudo apt-get install watchdog
创建一个名为reboot.sh的脚本文件,内容如下:
!/bin/bash touch /var/run/watchdog.pid && echo $! > /var/run/watchdog.pid && touch /var/run/watchdog.log && tail -F /var/run/watchdog.log | while read line; do echo $line >> /var/run/watchdog.log; done & watchdog -d 60 -t 30 -v /var/run/watchdog.log --pre-start /usr/bin/unattended-upgrade --post-stop /usr/bin/unattended-upgrade restart || true && killall watchdog && exit 0
这个脚本会在每分钟检查一次系统日志文件(默认为/var/log/syslog),如果连续30分钟没有新的日志记录,就会触发重启操作,脚本还会在系统启动时执行unattended-upgrade命令进行无人值守升级,将脚本设置为可执行:
chmod +x reboot.sh
接下来,将脚本添加到watchdog的配置中:
sudo nano /etc/watchdog.conf
在打开的文件中,找到include和watch选项,分别添加以下内容:
include = /etc/watchdog.events/*.conf, /etc/watchdog.d/*.conf, /etc/watchdog.local/*.conf, /etc/watchdog.d/*.conf, /etc/watchdog.local/*.conf, /etc/watchdog.d/*.conf, /etc/watchdog.local/*.conf, /etc/watchdog.d/*.conf, /etc/watchdog.local/*.conf, /etc/watchdog.d/*.conf, /etc/watchdog.local/*.conf, /etc/watchdog.d/*.conf, /etc/watchdog.local/*.conf, /etc/watchdog.d/*.conf, /etc/watchdog.local/*.conf, /etc/watchdog.d/*.conf, /etc/watchdog.local/*.conf, /etc/watchdog.d/*.conf, /etc/watchdog.local/*.conf, /etc/watchdog.d/*.conf, /etc/watchdog.local/*.conf, /etc/watchdog.d/*.conf, /etc/watchdog.local/*.conf, /etc/watchdog.d/*.conf, /etc/watchdog.local/*.conf, /etc/watchdog.d/*.conf, /etc/watchdog.local/*.conf, /etc/watchdog.d/*.conf, /etc/watchdog.local/*.conf, /etc/watchdog.d/*.conf, /etc/watchdog.local/*.conf, /etc/watchdog.d/*.conf, /etc/watchdog.local/*.conf, /etc/watchdog
原创文章,作者:酷盾叔,如若转载,请注明出处:https://www.kdun.com/ask/109075.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复