温馨提示×

nohup在CentOS中如何实现自动重启

小樊
47
2025-09-05 23:12:54
栏目: 智能运维

在 CentOS 中,要使 nohup 命令在后台运行的程序在系统重启后自动启动,可以使用 systemd 服务来实现。以下是创建一个 systemd 服务以实现 nohup 命令自动重启的步骤:

  1. 创建一个新的 systemd 服务文件。使用文本编辑器(如 vim)创建一个新文件,例如 /etc/systemd/system/my_nohup_service.service。请将 my_nohup_service 替换为您自己的服务名称。
sudo vim /etc/systemd/system/my_nohup_service.service 
  1. 编辑服务文件。在新创建的服务文件中,添加以下内容:
[Unit] Description=My nohup service After=syslog.target network.target [Service] Type=simple User=<your_user> Group=<your_group> ExecStart=/usr/bin/nohup /path/to/your/command > /path/to/your/logfile 2>&1 & Restart=always [Install] WantedBy=multi-user.target 

请将 <your_user><your_group> 替换为您希望以该用户身份运行程序的用户和组。将 /path/to/your/command 替换为您要运行的命令的路径,将 /path/to/your/logfile 替换为您希望将输出重定向到的日志文件的路径。

  1. 保存并关闭服务文件。

  2. 重新加载 systemd 配置。运行以下命令以使 systemd 重新加载配置并识别新创建的服务:

sudo systemctl daemon-reload 
  1. 启用服务。运行以下命令以启用新创建的服务,使其在系统启动时自动运行:
sudo systemctl enable my_nohup_service.service 
  1. 启动服务。运行以下命令以立即启动新创建的服务:
sudo systemctl start my_nohup_service.service 

现在,您的 nohup 命令将在后台运行,并在系统重启后自动启动。您可以使用以下命令检查服务状态:

sudo systemctl status my_nohup_service.service 

0