如何在 linux/bash 中同时运行两个正在进行的进程?

7 linux bash process background-process

我想知道如何在 Linux/bash 中同时运行两个正在进行的进程。基本上,我有一个 Node Web 服务器和一个 MJPG-Streamer 服务器。我想同时运行这两个进程,但它们是正在进行的进程。我听说将它们作为后台进程运行,但我希望它们与前台进程具有相同的优先级。

小智 5

当您说优先级时,您可能指的是流程的良好程度。引用维基百科

nice 是在 Unix 和类 Unix 操作系统(如 Linux)上找到的程序。它直接映射到同名的内核调用。nice 用于调用具有特定优先级的实用程序或 shell 脚本,从而为该进程提供比其他进程更多或更少的 CPU 时间。niceness ?20 是最高优先级,19 或 20 是最低优先级。进程的默认 niceness 继承自其父进程,通常为 0。

在后台运行进程不会影响它的良好级别。这与在前台运行时完全相同。

因此,您可以通过使用尾随的“&”符号调用它来轻松地在后台运行您的应用程序/进程:

my-server &
Run Code Online (Sandbox Code Playgroud)

您还可以通过按ctrl+ z(暂停执行)然后按bg +将前台进程发送到后台enter

您可以使用命令jobs列出正在运行的后台任务。

为了让它回到前台,你必须用jobs-command找出它的job-ID,然后运行fg [job-ID](例如:fg 1

后台任务会将其所有输出发送到您的 shell。如果您不想看到他们的输出,则需要将其重定向到 /dev/null:

my-server 1>/dev/null &
Run Code Online (Sandbox Code Playgroud)

...这会将正常输出重定向到空白中。错误仍然可见。