nohup是一个UNIX和Linux命令,用于在你退出shell之后继续运行指定的命令。nohup的名字来源于”no hang up”,表示即使你断开了连接,命令仍然会运行。
当使用nohup运行命令时,命令的输出默认会被追加到一个名为nohup.out的文件中,除非你明确指定了其他的输出文件。
要使用nohup来启动一个shell脚本(例如script.sh),你可以这样操作:
nohup ./script.sh &
这里的&是将命令放到后台运行。
如果你想把输出重定向到其他文件,例如output.log,可以这样做:
nohup ./script.sh > output.log 2>&1 &
这个命令会将标准输出和标准错误都重定向到output.log。
注意:当你使用nohup启动了一个后台进程后,该进程的父进程会成为init进程(进程 ID 为 1),这意味着即使你退出了shell,进程仍然会继续运行。使用jobs命令不会显示使用nohup启动的后台进程,因为这些进程已经与当前shell脱钩。要查看使用nohup启动的进程,可以使用ps或者top命令。要结束这些进程,可以使用kill命令。