linux

如何在Linux中使用nohup命令实现自动重启

小樊
36
2025-09-06 04:18:57
栏目: 智能运维

在 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 服务运行,并在发生故障时自动重启。

0
看了该问题的人还看了