这篇文章主要介绍了在后台运行Linux命令的方法,帮助大家更好的理解和学习Linux,感兴趣的朋友可以了解下
通常情况下,当你在终端运行一个命令,在你开始输入另外一个命令之前,你必须等待当前命令运行结束。这被称为在前台运行命令,或者前台进程。当一个进程在前台运行时,它占用了你的 shell,并且你可以通过输入设备和它进行交互。
那么当一个命令运行需要很长时间,而你又想同时运行另外的命令,应该怎么办?有几种选项可以选择。最明显并且最直接的选项就是启动一个新的 Shell 会话,并且在上面运行命令。另外一个选项,就是在后台运行命令。
一个后台进程就是说一个进程/命令在终端启动后,运行在后台,并且不会和用户发生任何交互。
在这篇文章中,我们将会讨论在 Linux 中的后台进程。我们将会为你演示如何在后台启动命令,并且保持进程直到会话结束。
在后台运行一个 Linux 命令
为了在后台运行命令,请在命令的后面添加一个符号(&):
command &
这个 shell 的任务 id(被括号包围的内容)和进程 ID 将会被打印在终端:
[1] 25177
你可以在后台同时运行很多进程。
后台进程会将不断地将信息写在终端上。为了禁止stdout和stderr信息,请使用下面的语法:
command > /dev/null 2>&1 &
>/dev/null 2>&1意味着 将stdout转向/dev/null,而stderr转向sdtout。
使用jobs命令显示当前 shell 会话中所有停止的和后台的任务状态。
jobs -l
输出内容包括任务 id,进程 ID,任务状态和启动任务的命令:
[1]+ 25177 Running ping google.com &
想要将后台进程转到前台的话,请使用fg命令:
fg
如果你在后台有多个任务,请在命令后添加%+任务 ID:
fg %1
想要停止后台进程,请在kill命令后添加进程 ID:
kill -9 25177
将前台进程移动到后台
想要将一个前台进程移动到后台:
01.通过按键Ctrl+Z停止当前进程
02.通过输入bg将停止进程移动到后台去
保持后台进程运行