linux nohup命令

时间:2020-02-23 14:40:09  来源:igfitidea点击:

通常,在Linux中,当连接丢弃或者用户从系统注销时,会话将终止,并且从终端执行的所有进程都将停止。
如果我们想要在后台延续或者退出系统后继续运行的程序或者命令,则可能必须使用nohup命令。

nohup命令将以提供的参数执行其他程序或者命令,并忽略所有挂起信号。
此命令很有用,尤其是通过ssh连接到服务器时,并且希望程序或者命令甚至在从服务器断开连接后继续在后台运行。

nohup linux命令

语法:

nohup COMMAND [ARGS]

或者

$nohupoptions

在nohup命令查找帮助:

$nohup--help

要查找nohup的版本信息,请使用以下命令:

$nohup--version

1.在前台运行命令

默认情况下,Nohum命令在前台运行,并将输出重定向到"NOHUP.OUTPUT"文件中。
此文件将在当前工作目录中创建。
如果用户没有权限,则将在用户的主目录中创建它。

$nohup ls

2.运行后台中的命令

在前台中使用Nohup命令有一个缺点,我们无法与终端交互,直到命令执行完成。
所以要避免这种情况,我们将在像这样的背景中运行命令

$nohup ping theitroad.com

我们可以在上面的示例中看到所有命令输出将添加到nohup.out文件。
我们可以使用终端中的"cat nohup"命令查看此文件。

[1] 2233

其中[1]是作业ID,2233是背景过程的(PID)。
我们可以使用此进程ID来杀死后台进程:

$kill 2233

3.将输出重定向到文件

默认情况下,nohup命令将输出写入 nohup.out文件。
我们可以使用标准shell重定向来定义自己的输出文件。

$nohup ls > list.out

我们还可以使用以下命令行创建用于输出和错误的单独文件。

nohup ls > list.out 2 > list.err

4.运行多个命令

我们还可以使用nohup运行多个命令。
在下面的示例中,MKDIR,BASH和LS命令在后台运行。

$nohup  bash -c 'mkdir theitroadDir && ls'