nohup(no hang-up)命令是Linux中用于管理长时间运行任务的一个实用程序。它可以确保在用户退出登录或关闭终端后,任务仍然继续运行。以下是如何使用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
或者更具体地:
ps aux | grep '[c]ommand'
注意:[c]ommand 中的方括号是为了避免 grep 命令本身出现在结果中。
如果你需要终止 nohup 任务,可以使用 kill 命令:
kill -9 PID
其中 PID 是任务的进程ID。
假设你想运行一个长时间运行的Python脚本 long_running_script.py,你可以这样做:
nohup python long_running_script.py > script_output.log 2>&1 &
然后你可以使用 ps 命令来查看任务状态:
ps aux | grep long_running_script.py
如果需要终止任务:
kill -9 PID
nohup 命令会忽略挂起信号(SIGHUP),因此即使你关闭终端或退出登录,任务也会继续运行。nohup 时,确保你有足够的权限来运行该命令。通过以上步骤,你可以有效地使用 nohup 命令来管理Linux中的长时间运行任务。