ubuntu

nohup在Ubuntu中如何实现进程守护

小樊
86
2025-02-15 23:09:19
栏目: 智能运维

nohup(no hang-up)是一个在Linux和Unix系统中用于在后台运行命令的实用程序,即使用户退出系统或关闭终端,它也能使进程继续运行

以下是如何在Ubuntu中使用nohup实现进程守护的步骤:

  1. 打开终端。

  2. 输入nohup命令,后跟你想要在后台运行的命令。例如,如果你想在后台运行一个名为my_script.sh的脚本,你可以输入:

nohup ./my_script.sh &

这里的&符号表示将命令放入后台运行。

  1. 按Enter键执行命令。nohup会自动将输出重定向到一个名为nohup.out的文件中,你可以在当前目录下找到这个文件。如果你想将输出重定向到其他文件,可以使用以下命令:
nohup ./my_script.sh > output.log &

这将把输出保存到output.log文件中。

  1. 现在,即使你关闭终端或退出系统,my_script.sh脚本也会继续运行。要检查脚本的输出,可以查看nohup.outoutput.log文件。

  2. 如果你想在后台运行的进程结束后自动重启它,可以使用systemd服务。首先,创建一个名为my_script.service的文件:

sudo nano /etc/systemd/system/my_script.service
  1. 在文件中添加以下内容:
[Unit]
Description=My script service

[Service]
ExecStart=/path/to/your/script/my_script.sh
Restart=always
User=username

[Install]
WantedBy=multi-user.target

/path/to/your/script/my_script.sh替换为你的脚本路径,将username替换为运行脚本的用户。

  1. 保存并关闭文件。然后运行以下命令启用和启动服务:
sudo systemctl enable my_script.service
sudo systemctl start my_script.service

现在,你的脚本将守护进程在后台运行,并在意外终止时自动重启。要检查服务的状态,可以使用以下命令:

sudo systemctl status my_script.service

0
看了该问题的人还看了