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
check version of nohup command

使用Nohup启动一个进程

如果你想让进程/任务继续运行,请在命令前加上nohup,如下所示。这些任务将继续在shell中运行,并且在退出shell或终端时不会被终止。

nohup ./hello.sh 
Nohup command with regular commands
cat nohup.out
Cat Nohup Out file
nohup ./hello.sh > output.txt

再次查看文件,请运行

cat output.txt
Redirect Nohup Output To A text File
nohup ./hello.sh > myoutput.txt >2&1 
Redirect to Standard Out And Standard Error

使用Nohup在后台启动一个进程

使用&符号将进程放在后台运行。在这个例子中,我们正在ping google.com并将其送到后台运行。

nohup ping google.com &
Nohup Run Process In The Background
pgrep -a ping
Pgrep Ping Google
kill 2565
Kill PID

摘要

    1. 所有使用nohup命令运行的进程即使在退出shell时也将忽略SIGHUP信号。

 

    1. 一旦使用nohup命令开始或执行作业,用户将无法使用标准输入。

 

    默认情况下,nohup.out被用作标准输出和标准错误的默认文件。
发表回复 0

Your email address will not be published. Required fields are marked *


广告
将在 10 秒后关闭
bannerAds