Linux中的Nohup命令
当退出Linux系统的shell时,通常会终止或挂起所有正在运行的进程。那么如果仍希望保持进程运行而退出shell/终端,该怎么办呢?这就是nohup命令派上用场的地方。
Nohup 命令
Nohup,即no hang up的简称,是Linux系统中的一个命令,可以在退出终端后使进程继续运行。Nohup可以阻止进程或任务接收SIGHUP(信号挂断)信号,该信号在关闭或退出终端时发送给进程。在本指南中,我们将介绍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被用作标准输出和标准错误的默认文件。