在 Linux 中,nohup 命令用于在后台运行程序,即使关闭终端或断开连接,程序也会继续运行。要实现自动重启,可以结合 nohup 和其他工具,如 while 循环或 systemd 服务。
方法一:使用 while 循环
创建一个 shell 脚本(例如 run.sh),内容如下:
#!/bin/bash
while true; do
nohup your_command &
wait $!
echo "Restarting your_command after failure..."
sleep 5
done
将 your_command 替换为你要运行的命令。然后,给予脚本执行权限并运行:
chmod +x run.sh
./run.sh
这将使 your_command 在后台运行,并在发生故障时自动重启。
方法二:使用 systemd 服务
创建一个 systemd 服务文件(例如 /etc/systemd/system/your_service.service),内容如下:
[Unit]
Description=Your Service Description
[Service]
ExecStart=/path/to/your_command
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
将 /path/to/your_command 替换为你要运行的命令的路径。然后,执行以下命令启用并启动服务:
sudo systemctl enable your_service.service
sudo systemctl start your_service.service
这将使 your_command 作为 systemd 服务运行,并在发生故障时自动重启。
以上就是关于“如何在Linux中使用nohup命令实现自动重启”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm