Linux

如何在 linux/bash 中同時執行兩個正在進行的程序?

  • April 30, 2015

我想知道如何在 Linux/bash 中同時執行兩個正在進行的程序。基本上,我有一個 Node Web 伺服器和一個 MJPG-Streamer 伺服器。我想同時執行這兩個程序,但它們是正在進行的程序。我聽說將它們作為後台程序執行,但我希望它們與前台程序具有相同的優先級。

當您說優先級時,您可能是指流程的良好級別。引用維基百科

nice 是 Unix 和類 Unix 作業系統(如 Linux)上的一個程序。它直接映射到同名的核心呼叫。nice 用於呼叫具有特定優先級的實用程序或 shell 腳本,從而為程序提供比其他程序更多或更少的 CPU 時間。-20 的 niceness 是最高優先級,19 或 20 是最低優先級。程序的預設 niceness 繼承自其父程序,通常為 0。

在後台執行一個程序不會影響它的好級別。這與您在前台執行它時完全一樣。

因此,您可以通過使用尾隨的“&”符號呼叫它來輕鬆地在後台執行您的應用程序/程序:

my-server &

您還可以通過按ctrl+ z(暫停執行)然後按bg +將前台程序發送到後台enter

您可以使用命令jobs列出正在執行的後台任務。

要讓它回到前台,您必須使用作業命令找出它的作業 ID,然後執行fg$$ job-ID $$(例如:fg 1

後台任務會將其所有輸出發送到您的 shell。如果您不想看到它們的輸出,則需要將其重定向到 /dev/null:

my-server 1>/dev/null &

…這會將正常輸出重定向到 void。錯誤仍然可見。

引用自:https://unix.stackexchange.com/questions/112381