nohup
(no hang-up)命令在 CentOS 和其他 Unix-like 系统中用于在后台运行命令,即使关闭终端或断开连接,命令也会继续运行。以下是如何在 CentOS 中使用 nohup
命令的详细步骤和示例:
基本语法
nohup command [arguments] &
command
:要运行的命令。[arguments]
:命令的参数。&
:将命令放入后台运行。
示例
假设你想在后台运行一个名为 my_script.sh
的脚本,并且希望即使关闭终端,脚本也会继续运行。
-
创建一个简单的脚本:
#!/bin/bash echo "Hello, World!" sleep 3600 # 让脚本运行1小时
-
赋予脚本执行权限:
chmod +x my_script.sh
-
使用
nohup
运行脚本:nohup ./my_script.sh &
输出重定向
默认情况下,nohup
会将命令的输出重定向到当前目录下的 nohup.out
文件。如果你想将输出重定向到其他文件,可以使用 >
或 >>
。
>
:覆盖文件内容。>>
:追加到文件内容。
例如,将输出重定向到 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
注意事项
nohup
命令会忽略挂起信号(SIGHUP),因此即使关闭终端,命令也会继续运行。- 使用
&
将命令放入后台运行时,终端会立即返回提示符,你可以继续在终端中执行其他命令。 - 确保脚本具有执行权限,并且路径正确。
通过以上步骤,你可以在 CentOS 中使用 nohup
命令在后台运行命令,并确保即使关闭终端,命令也会继续运行。