在 Linux 中,nohup
命令用于在用户退出系统或关闭终端后继续运行指定的命令或脚本。使用 nohup
可以避免 SSH 会话中断对进程的影响。以下是使用 nohup
的基本步骤和示例:
nohup command [arguments] &
command
是你想要运行的命令或脚本。[arguments]
是传递给命令的参数(如果有)。&
将命令放入后台运行。假设你有一个名为 my_script.sh
的脚本,你希望在 SSH 会话中断后仍然继续运行它。
使用 nohup
运行脚本:
nohup ./my_script.sh &
查看输出:
nohup
默认会将输出重定向到一个名为 nohup.out
的文件中。你可以使用以下命令查看输出:
tail -f nohup.out
指定输出文件:
如果你希望将输出重定向到其他文件,可以使用 >
或 >>
操作符:
nohup ./my_script.sh > output.log 2>&1 &
这里,>
将标准输出重定向到 output.log
,2>&1
将标准错误重定向到标准输出,从而将所有输出都写入 output.log
。
&
将命令放入后台运行,这样你可以在不阻塞终端的情况下继续使用 SSH 会话。nohup
会将输出重定向到 nohup.out
文件。如果你希望将输出重定向到其他文件,需要显式指定。nohup
可以避免 SSH 会话中断对进程的影响,但你仍然需要手动管理这些进程。例如,你可以使用 ps
命令查看进程状态,使用 kill
命令终止进程。nohup
运行一个长时间运行的命令假设你想运行一个长时间运行的命令 long_running_command
,并希望它在 SSH 会话中断后继续运行:
nohup long_running_command &
然后,你可以使用以下命令查看输出:
tail -f nohup.out
通过这种方式,即使你关闭了 SSH 会话,long_running_command
也会继续运行。