nohup(no hang-up)命令在Linux中用于使进程忽略挂起(SIGHUP)信号,从而实现进程的持久运行。当你在终端中启动一个进程时,如果关闭终端或断开连接,该进程通常会被终止。使用nohup可以防止这种情况发生。
以下是nohup命令的基本用法和一些关键点:
nohup command &
command:要运行的命令。&:将命令放入后台运行。忽略SIGHUP信号:
nohup命令会使进程忽略SIGHUP信号,这样即使终端关闭或断开连接,进程也会继续运行。输出重定向:
nohup会将命令的输出重定向到当前目录下的nohup.out文件中。你可以使用重定向操作符来指定其他输出文件。nohup command > output.log 2>&1 &
output.log文件中。后台运行:
&将命令放入后台运行,这样你可以在不阻塞终端的情况下继续使用终端。假设你想运行一个长时间运行的脚本long_running_script.sh,可以使用以下命令:
nohup ./long_running_script.sh > script_output.log 2>&1 &
这条命令会启动long_running_script.sh脚本,并将所有输出(包括标准输出和标准错误)重定向到script_output.log文件中。即使你关闭终端或断开连接,脚本也会继续运行。
你可以使用ps命令来检查进程的状态:
ps aux | grep nohup
或者使用pgrep命令:
pgrep -af nohup
如果你需要终止使用nohup启动的进程,可以使用kill命令:
kill -9 <PID>
其中<PID>是进程的ID。
通过使用nohup命令,你可以确保重要的进程在终端关闭或网络连接中断的情况下继续运行,从而实现进程的持久运行。