2017-09-17 70 views
1

啓動多個進程,我有以下bash腳本:同時與bash腳本

#!/bin/bash 

set -o errexit # Exit on error 

# Enable script to run from anywhere 
cd "$(dirname ${BASH_SOURCE[0]})" 

root=$(pwd) 

cd "../../../" 
source ./somebashscript 

cd "../../../..." 

source ./otherbashscript 

兩個源命令將推出自己的過程。

如何從同一個bash腳本啓動這兩個進程?

+0

使用'&'將在後臺啓動腳本和允許你從相同的腳本做 – Vinny

+0

把'source'放在後臺是沒有意義的。 'source'的目的是在當前shell **中執行代碼**。如果你不需要這樣做,不要使用'source',只要'./somebashscript&' –

回答

1

在命令末尾使用&在後臺啓動進程。

cd "../../../" 
source ./somebashscript & 

cd "../../../..." 

source ./otherbashscript & 

您可能希望將腳本的輸出重定向到其他位置,否則所有內容都將打印到屏幕上。如果你想記錄輸出,您可以通過添加> file.log做到這一點,或者> /dev/null如果你想刪除它

source ./somebashscript > /dev/null & 
+0

輝煌,我該如何停止這兩個過程? – dagda1

+0

你有兩個選擇;捕獲每個進程的PID或使用'pkill <進程名稱>'按名稱殺死進程 – Vinny

+0

@ dagda1如果您發現我的答案有用,請考慮upvoting並接受它。謝謝 – Vinny