nohup
(no hang-up)命令在 CentOS 系统中用于在后台运行程序,即使关闭终端或断开连接,程序也会继续运行。以下是 nohup
命令的基本用法:
基本语法
nohup command [arguments] &
command
:要运行的命令。[arguments]
:传递给命令的参数。&
:将命令放入后台运行。
示例
假设你想在后台运行一个名为 my_script.sh
的脚本,并且希望即使关闭终端,脚本也会继续运行。
-
直接使用
nohup
命令nohup ./my_script.sh &
-
将输出重定向到文件 默认情况下,
nohup
会将标准输出和标准错误输出重定向到一个名为nohup.out
的文件中。如果你想指定输出文件,可以使用重定向操作符>
和2>
。-
将标准输出重定向到
output.log
,标准错误输出重定向到error.log
nohup ./my_script.sh > output.log 2> error.log &
-
只将标准输出重定向到
output.log
,标准错误输出仍然输出到终端nohup ./my_script.sh > output.log 2>&1 &
-
查看后台进程
你可以使用 ps
命令来查看后台运行的进程。
ps aux | grep my_script.sh
终止后台进程
如果你需要终止后台运行的进程,可以使用 kill
命令。
-
查找进程ID
ps aux | grep my_script.sh
-
终止进程
kill -9
其中
是进程ID。
注意事项
nohup
命令会忽略挂起信号(SIGHUP),因此即使关闭终端,进程也会继续运行。- 使用
nohup
命令时,建议将输出重定向到文件,以避免输出到终端导致混乱。 - 如果你希望在系统重启后自动启动某个服务,可以考虑使用
systemd
服务单元文件来实现。
通过以上步骤,你可以在 CentOS 系统中使用 nohup
命令在后台运行程序,并确保程序在关闭终端后仍然继续运行。