在 CentOS 系统中,nohup 命令用于在用户退出系统后继续运行指定的进程。它会忽略挂起(SIGHUP)信号,从而避免进程因终端关闭而中断。以下是如何使用 nohup 命令的详细步骤和示例:
nohup command [arguments] &
command:要运行的命令。[arguments]:传递给命令的参数。&:将命令放入后台运行。运行一个简单的命令
假设你想运行一个简单的命令 sleep 3600,这个命令会让进程休眠3600秒(1小时)。
nohup sleep 3600 &
运行这个命令后,你会看到类似以下的输出:
nohup: ignoring input and appending output to 'nohup.out'
这意味着命令的输出会被重定向到当前目录下的 nohup.out 文件中。
运行一个脚本
假设你有一个名为 my_script.sh 的脚本,你可以这样运行它:
nohup ./my_script.sh &
同样,输出会被重定向到 nohup.out 文件中。
指定输出文件 如果你想将输出重定向到其他文件,可以这样做:
nohup command > output.log 2>&1 &
这里,> 将标准输出重定向到 output.log,2>&1 将标准错误重定向到标准输出,从而将所有输出都写入 output.log 文件。
你可以使用 ps 命令来查看后台运行的进程:
ps aux | grep nohup
如果你需要终止一个使用 nohup 运行的进程,可以使用 kill 命令。首先找到进程的 PID(进程ID),然后使用 kill 命令终止它:
ps aux | grep nohup
kill -9 <PID>
其中 <PID> 是你要终止的进程的进程ID。
nohup 命令时,确保你有足够的权限来运行指定的命令。nohup.out 文件可能会变得非常大,特别是在长时间运行的进程或产生大量输出的进程中。定期检查并清理这些文件是一个好习惯。通过以上步骤,你可以在 CentOS 系统中使用 nohup 命令来避免进程因终端关闭而中断。