nohup
(no hang-up)是一个在Linux和Unix系统中用于在后台运行命令的实用程序,即使用户退出系统或关闭终端,它也能使进程继续运行
以下是如何在Ubuntu中使用nohup
实现进程守护的步骤:
打开终端。
输入nohup
命令,后跟你想要在后台运行的命令。例如,如果你想在后台运行一个名为my_script.sh
的脚本,你可以输入:
nohup ./my_script.sh &
这里的&
符号表示将命令放入后台运行。
nohup
会自动将输出重定向到一个名为nohup.out
的文件中,你可以在当前目录下找到这个文件。如果你想将输出重定向到其他文件,可以使用以下命令:nohup ./my_script.sh > output.log &
这将把输出保存到output.log
文件中。
现在,即使你关闭终端或退出系统,my_script.sh
脚本也会继续运行。要检查脚本的输出,可以查看nohup.out
或output.log
文件。
如果你想在后台运行的进程结束后自动重启它,可以使用systemd
服务。首先,创建一个名为my_script.service
的文件:
sudo nano /etc/systemd/system/my_script.service
[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
替换为运行脚本的用户。
sudo systemctl enable my_script.service
sudo systemctl start my_script.service
现在,你的脚本将守护进程在后台运行,并在意外终止时自动重启。要检查服务的状态,可以使用以下命令:
sudo systemctl status my_script.service