在Linux中,nohup
(no hang-up)命令用于在用户退出登录后继续运行指定的进程。使用nohup
可以防止进程因终端关闭或网络断开而终止。以下是如何使用nohup
命令确保进程持续运行的步骤:
基本用法:
nohup command &
其中,command
是你希望持续运行的命令。&
符号将命令放入后台运行。
重定向输出:
默认情况下,nohup
会将命令的输出重定向到当前目录下的nohup.out
文件。如果你想将输出重定向到其他文件,可以使用:
nohup command > output.log 2>&1 &
这里,>
将标准输出重定向到output.log
,2>&1
将标准错误重定向到标准输出,从而将所有输出都写入output.log
。
查看进程:
你可以使用ps
命令查看由nohup
启动的进程:
ps aux | grep command
其中,command
是你启动的命令。
终止进程:
如果你需要终止由nohup
启动的进程,可以使用kill
命令。首先找到进程ID(PID),然后使用kill
命令终止进程:
kill -9 PID
其中,PID
是进程的ID。
假设你想在后台运行一个Python脚本script.py
,并确保它在用户退出登录后继续运行:
nohup python script.py > output.log 2>&1 &
这样,script.py
的输出会被写入output.log
文件,并且即使你关闭终端,进程也会继续运行。
nohup
命令会忽略挂起信号(SIGHUP),因此即使终端关闭,进程也不会终止。nohup
时,建议将输出重定向到一个文件,以避免输出到终端并可能导致的混乱。systemd
服务或supervisord
等工具。通过以上步骤,你可以确保在Linux中使用nohup
命令持续运行进程。