在 Linux 系统中,nohup(全称 no hang up,意为"不挂断")命令允许一个进程在用户退出登录或终端关闭后仍能继续运行。它会忽略 HUP(挂断)信号,通常情况下,当会话结束时,该信号会导致正在运行的进程终止。
- nohup 可以防止用户注销时进程被停止。
- 它会自动将命令的输出重定向到一个名为 nohup.out 的文件中(前提是没有指定其他输出文件)。
- 它可以与
&结合使用,以便在后台运行进程。
示例
使用 Nohup 启动进程
要使用 Nohup 启动进程,只需在所需的命令前加上 INLINECODE89612a3f。例如,如果我们想使用 Nohup 执行一个名为 INLINECODE3e7078db 的 bash 脚本,可以使用以下命令:
nohup bash geekfile.sh
输出:
若要将输出重定向到 output.txt 文件:
nohup bash geekfile.sh > output.txt
输出:
Nohup 命令语法
使用 Nohup 命令的语法非常直观:
nohup command [options] &
- INLINECODE26fac297commandINLINECODE122b7c6f:指定我们要执行的命令或脚本。
- INLINECODE32326e81[options]INLINECODE22a118aa:用于修改命令行为的可选参数或标志。
- INLINECODEcb04f990&INLINECODE70c8fe5d:在命令末尾放置一个和号 (&),指示 shell 在后台运行该命令。
使用 Nohup 在后台启动进程
为了在后台运行命令,我们需要在命令末尾附上 ‘&‘ 符号。执行后,在后台运行命令时,它不会立即返回到 shell 命令提示符。我们可以使用 fg 命令将其调回前台。
nohup bash geekfile.sh &
fg
输出:
注意: 方括号内的数字代表 作业 ID,旁边的数字则是 进程 ID。
在后台运行多个命令
我们可以使用 nohup 命令在后台运行多个命令。
nohup bash -c ‘commands‘
示例:
nohup bash -c ‘cal && ls‘
输出:
!To run multiple commands in the background:
这里,输出将默认存储在 nohup.out 中。如果要重定向它,请输入:
nohup bash -c ‘commands‘ > filename.txt
示例:
nohup bash -c ‘cal && ls‘ > output.txt
输出:
!Storing the output in output file
检查 Nohup 的版本
检查 Nohup 的版本非常简单。通常,我们可以使用 INLINECODE3987ae32–versionINLINECODE79fde1a9 标志来检查系统上安装的 Nohup 版本。只需执行以下命令:
nohup --version
输出: