关于linux运维:如何在后台运行-Linux-Shell-命令-脚本

11次阅读

共计 986 个字符,预计需要花费 3 分钟才能阅读完成。

在 Linux 终端上执行命令的通常只需运行它,而后期待它优雅地退出即可。一旦命令退出,您能够继续执行其余命令,这就是所谓的前台中的运行命令。顾名思义,您能够在终端上看到命令的输入。

然而,有时在前台运行命令会带来一系列挑战。该命令可能须要很长时间能力退出,可能会节约您贵重的工夫,它可能齐全依赖于 shell 会话,让你陷入困境。

在这种状况下,在后盾运行命令是最好的抉择。当您在前台并发地执行其余命令时,能够将一个 (多个) 命令发送到后盾。这进步了在终端上工作的效率,节俭了您的工夫。

在本指南中,咱们关注如何在后盾运行 Linux shell 命令或脚本。

在后盾应用“&”符号运行 shell 命令

要在后盾运行命令或脚本,请在开端用 & 号完结它,如下所示

$ command &

留神: 以 & 号完结命令并不会将该命令与您拆散。它只是将它发送到您正在应用的以后 shell 的后盾,该命令依然将输入打印到 STDOUT 或 STDERR,这将阻止您在终端上执行其余命令。

一种更好的办法是将命令重定向到 /dev/null,而后在开端附加 & 符号,如下所示

$ command &>/dev/null &

要确认命令被发送到后盾,运行 jobs 命令

如果须要终止后盾过程,执行 kill 命令,前面跟着过程的 PID,选项 -9 将立刻终止过程。

$ kill -9 138314

应用 nohup 命令在后盾运行 shell 命令或脚本

在后盾运行命令的另一种办法是应用 nohup 命令。nohup 命令是 no hang up 的缩写,它是一个命令,即便在退出 shell 后也能放弃过程运行。

它通过阻止过程接管 SIGHUP (信号挂起) 信号来做到这一点,这个信号通常是在过程退出终端时发送给过程的。

要在后盾发送命令或脚本并放弃其运行,请应用以下语法:

$ nohup command &>/dev/null &

$ nohup shell-script.sh &>/dev/null &

例如:

$ nohup ping google.com &>/dev/null &

同样,您能够应用 jobs 命令来验证该命令是否在后盾运行

$ jobs

开端总结

咱们介绍了在后盾运行命令或 shell 脚本的两种办法。咱们曾经理解了如何应用 & 符号和 nohup 命令在后盾运行命令。

我的开源我的项目

  • course-tencent-cloud(酷瓜云课堂 – gitee 仓库)
  • course-tencent-cloud(酷瓜云课堂 – github 仓库)
正文完
 0