共计 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 仓库)