迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 操作系统 >

Bash Nohup 与 & 的区别

作者:迹忆客 最近更新:2023/06/09 浏览次数:

这篇简短的文章介绍了通过 Bash 在后台运行 Linux 进程的 nohup 命令和 & 控制运算符。 此外,我们将进一步研究 nohup 和 & 之间的主要区别。


在后台运行 Linux 进程

Linux 提供了两种在后台运行进程或命令的方法。

  1. 仅使用与号 (&) 控制运算符。
  2. 将 nohup 命令与 & 结合使用。

符号 (&) 控制运算符

我们可以使用 & 控制运算符在后台异步运行任何命令。

考虑以下命令。

sleep 10

sleep 命令添加特定时间的延迟。 当我们运行 sleep 10 命令时,它会暂停 Bash 终端 10 秒,我们不能在终端上运行任何其他命令。

现在,考虑以下命令。

sleep 10 &

上面命令显示进程id(PID),sleep 10在后台异步执行。 执行控制返回命令终端,不等待睡眠结束。

现在,我们可以在同一终端上与后台睡眠命令并发运行任何其他命令。

我们可以使用以下命令将后台进程移动到前台。

fg

nohup 命令

nohup 命令运行任何其他命令或进程。 它代表“no hang-up”,它可以防止关联的进程获得 SIGHUP 信号。

如果你想在终端关闭后仍然执行命令,你可以使用 nohup CommandName。

但是,如果我们想在后台运行一个命令,并且执行控制立即返回到终端,我们必须使用下面的命令。

nohup sleep 10 &

上面的命令在后台运行 sleep 10 命令并立即返回控制权,以便我们可以在同一终端上运行任何其他命令。

我们可以使用 pgrep 命令查看后台运行的命令,如下所示:

pgrep -a [Command]

pgrep 命令搜索命令并显示进程 ID (PID) 以及正在执行的命令详细信息。

例如,pgrep -a sleep 会将相关的后台进程显示为:

PID sleep 10

在这里,PID 表示分配给睡眠命令的进程 ID。


控制运算符 & 和 nohup 命令之间的区别

以下是使用 &nohup 在后台运行命令或进程之间的一些区别。

nohup 可以捕获挂断信号(SIGHUP),而 & 则不能。 SIGHUP 信号用于在进程启动的终端关闭时向进程发送信号。

通常,进程或命令使用 & 在后台运行,直到存在从中启动此命令或进程的 shell。 一旦 shell 终止,所有关联的命令或在后台运行的进程 & 也将终止。

当终端退出时,使用 SIGHUP (kill SIGHUP <pid>) 的挂断信号会终止该终端的所有子命令或子进程。 但是,这可以使用 nohup 来防止。

nohup 命令捕获 SIGHUP 信号,不让它到达实际命令。 因此,限制命令在 Bash 终端退出时终止。

&nohup 之间的另一个区别是关于 stdout/stderr 的重定向。

& 运算符不会自动重定向 stdout/stderr,而是将命令的输出直接显示到终端。 但是,nohup 将 stdout/stderr 重定向到位于 $HOME 的文件 nohup.out 中。

上一篇:在 Bash 中重命名文件

下一篇:没有了

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 Bash 中重命名文件

发布时间:2023/06/09 浏览次数:50 分类:操作系统

在本文中,我们将介绍一种方法,通过它您可以轻松地重命名目录中的所有文件。 此外,我们将看到必要的示例和解释,以使主题更容易理解。在 Bash 中使用 mv 命令重命名文件

在另一个 Bash 脚本中包含脚本文件

发布时间:2023/06/09 浏览次数:79 分类:操作系统

本文讨论了将一个 Bash 脚本文件包含到另一个脚本文件中的不同方法。在 Bash 脚本中包含文件 在 Bash 中包含或重用脚本非常简单。

使用 Bash 将文件读入数组

发布时间:2023/05/31 浏览次数:81 分类:操作系统

本篇文章介绍了一些使用 Bash 从文件中读取行并将其加载到数组中的方法。首先,我们将看到 readarray 方法。 之后,我们将研究一种更通用的将文件读入 Bash 数组的方法。

在 Bash 中从文件中删除行

发布时间:2023/05/31 浏览次数:168 分类:操作系统

在 Bash 脚本中,有几种方法可以从文件中删除一行。 本文将讨论从文件中删除不必要行的不同方法。使用 tail 删除文本文件的一行

在 Bash 中查找文件大小

发布时间:2023/05/31 浏览次数:109 分类:操作系统

在 Bash 脚本中,有几种方法可以找到文件的大小。 本文将展示如何通过 Bash 查找文件的大小。我们将在这里讨论三种不同的方法,您可以根据自己的需要选择最合适的一种。

在 Bash 中删除空行

发布时间:2023/05/31 浏览次数:113 分类:操作系统

使用文件时,您可能需要在显示文件之前从文件中删除空行。 在 Bash Script 中,有几种方法可以从文件中删除空行。在 Bash 中删除空行的文件

在 Bash 中递归查找文件

发布时间:2023/05/31 浏览次数:197 分类:操作系统

这篇文章是关于 Bash 中的 find 命令的。 本文将讨论在 Bash 中使用 find 命令查找特定类型文件的方法。在 Bash 中使用 find 命令递归查找文件 用于导航文件层次结构的命令行工具是 Linux 中的 find

在 Bash 中将文件读入变量

发布时间:2023/05/31 浏览次数:169 分类:操作系统

本文将展示我们如何在变量中获取文件。 此外,我们将看到必要的示例和适当的解释,以使主题更容易理解。要保存到变量中的文本文件

在 Bash 中检查文件是否为空

发布时间:2023/05/31 浏览次数:80 分类:操作系统

通常需要检查文件是否为空,幸运的是,有一些简单的方法可以在终端上使用 Bash 或什至使用 Bash 脚本来检查。在 Bash 中使用带有 -s 选项标志的测试命令来检查文件是否为空

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便