nohup
(no hang up)是一个在Linux和Unix系统中用于在后台运行命令的实用程序,即使关闭终端或断开连接,它也会继续运行
使用&
符号将命令放入后台运行:
在命令末尾添加&
符号,可以将命令放入后台运行。例如,如果你想在后台运行一个名为my_script.sh
的脚本,可以使用以下命令:
nohup ./my_script.sh &
将输出重定向到文件:
默认情况下,nohup
会将命令的输出发送到名为nohup.out
的文件。你可以使用>
符号将输出重定向到其他文件。例如,如果你想将输出保存到名为output.log
的文件,可以使用以下命令:
nohup ./my_script.sh > output.log 2>&1 &
这里,2>&1
表示将标准错误(2)重定向到标准输出(1),&
表示将命令放入后台运行。
作为系统服务运行:
如果你想让nohup
命令作为系统服务运行,可以创建一个名为my_service.service
的systemd服务文件。以下是一个简单的示例:
[Unit]
Description=My custom service
After=network.target
[Service]
ExecStart=/path/to/your/script.sh
Restart=always
User=my_user
Group=my_group
Environment=PATH=/usr/bin:/bin
[Install]
WantedBy=multi-user.target
将此文件保存到/etc/systemd/system/
目录下,然后运行以下命令启用和启动服务:
sudo systemctl enable my_service.service
sudo systemctl start my_service.service
这样,nohup
命令将作为系统服务运行,即使关闭终端或断开连接,它也会继续运行。
总之,nohup
在CentOS中可以通过将命令放入后台运行、将输出重定向到文件以及作为系统服务运行等方式与其他服务协同工作。