Linux中的Nohup命令
时间:2020-02-23 14:40:09 来源:igfitidea点击:
退出Linux系统的shell时,所有正在运行的进程通常会终止或者挂断。
那么,如果您仍要保持进程运行(甚至退出shell /终端),该怎么办?这是nohup命令出现的地方。
Nohup命令
Nohup(不挂机的简称)是Linux系统中的一个命令,即使退出shell或者终端后,该命令仍可保持进程运行。
Nohup阻止进程或者作业接收SIGHUP(信号挂起)信号。
这是在关闭或者退出终端时发送到进程的信号。
在本教程中,我们看一下nohup命令并演示如何使用它。
Nohup命令语法
Nohup命令的语法如下:
nohup command arguments
或者
nohup options
让我们看看命令如何发挥作用
检查Nohup的版本
您可以使用以下语法从检查Nohup的版本开始
nohup --version
使用Nohup启动进程
如果要保持进程/作业运行,请在命令前加上" nohup",如下所示。
这些作业仍将继续在Shell中运行,并且在退出Shell或者终端时不会被杀死。
nohup ./hello.sh
在上面的输出中,命令的输出已保存到nohup.out
中,以验证此运行,
cat nohup.out
此外,您可以选择将输出重定向到另一个文件,如图所示
nohup ./hello.sh > output.txt
再次,查看文件运行
cat output.txt
要将文件重定向到标准错误并输出,请使用> filename 2>&1
属性,如下所示
nohup ./hello.sh > myoutput.txt >2&1
使用Nohup在后台启动进程
要在后台启动进程,请在命令末尾使用"&"符号。
在此示例中,我们要ping google.com并将其发送到后台。
nohup ping google.com &
要在恢复shell程序时检查进程,请使用" pgrep"命令,如下所示
pgrep -a ping
如果要停止或者终止正在运行的进程,请使用" kill"命令,后跟进程ID,如下所示
kill 2565
总结
使用nohup命令运行的所有进程,即使退出shell也会忽略SIGHUP信号。
使用nohup命令启动或者执行作业后,用户将无法使用stdin。
默认情况下," nohup.out"用作stdout和stderr的默认文件。