Linux 中的 Nohup 命令
当退出 Linux 系统的 shell 时,所有正在运行的进程通常都会终止或挂起。那么如果您仍然想保持进程运行甚至退出 shell/终端,您会怎么做?这就是 nohup 命令的用武之地。
Nohup 命令
Nohup,no hang up 的缩写,是 Linux 系统中的一个命令,即使在退出 shell 或终端后仍能保持进程运行。 Nohup 阻止进程或作业接收 SIGHUP(Signal Hang UP)信号。这是在关闭或退出终端时发送到进程的信号。在本指南中,我们将了解 nohup 命令并演示如何使用它。
Nohup 命令语法
Nohup命令语法如下;
nohup command arguments
或者
nohup options
让我们看看命令是如何发挥作用的
检查 Nohup 的版本
您可以首先使用以下语法检查 Nohup 的版本
nohup --version

使用 Nohup 启动进程
如果你想让你的进程/作业保持运行,请在命令前加上 nohup
,如下所示。这些作业仍将继续在 shell 中运行,并且不会在退出 shell 或终端时被杀死。
nohup ./hello.sh

cat nohup.out

nohup ./hello.sh > output.txt
再次查看文件运行
cat output.txt

nohup ./hello.sh > myoutput.txt >2&1

使用 Nohup 在后台启动进程
要在后台启动进程,请在命令末尾使用 &
符号。在此示例中,我们正在 ping google.com 并将其发送到后台。
nohup ping google.com &

pgrep -a ping

kill 2565

概括
- 所有使用 nohup 命令运行的进程即使在退出 shell 时也会忽略 SIGHUP 信号。
- 使用 nohup 命令启动或执行作业后,用户将无法使用标准输入。
- 默认情况下,
nohup.out
用作 stdout 和 stderr 的默认文件。