nohup
是一个在 Linux 和 Unix 系统中常用的命令,用于运行程序并忽略挂起(SIGHUP)信号,即使用户注销了终端,进程仍然会继续执行。它的名字来源于 "no hang up"。
nohup command &
其中 command
是你想要运行的程序或命令。
假设你想在后台启动一个 Python 脚本,并且希望它在用户注销后仍然继续运行,可以使用以下命令:
nohup python3 myscript.py &
执行上述命令后,输出会被重定向到 nohup.out
文件中。如果需要更改默认的日志文件位置或输出内容,可以进一步自定义。
要查看是否有运行中的 nohup
进程,可以使用以下命令:
ps aux | grep 'nohup'
或者更简洁地:
jobs -l
默认情况下,输出会重定向到 nohup.out
文件中。可以通过以下方式改变重定向目标:
nohup command > output.log 2>&1 &
该命令将标准输出与错误输出合并并写入 output.log
文件。
假设你有一个 Python 脚本需要长时间运行,你可以将其重定向到一个特定的日志文件中:
nohup python3 mylongrunningscript.py > longlog.txt 2>&1 &
这样,所有的输出(包括错误信息)都会被记录在 longlog.txt
文件中。
如果你需要暂停或继续一个正在运行的后台进程,可以使用 kill
命令来操作。首先找到进程 ID:
ps aux | grep 'nohup'
然后发送相应的信号进行控制(如暂停和恢复)。
nohup
是一个非常实用的工具,特别是在需要确保程序在用户注销终端后仍然继续运行时。它不仅提供了基本的功能,还可以通过灵活地设置输出重定向来满足不同的需求。
希望这篇文章能帮助你更好地理解和使用 nohup
命令!