2016-12-13 85 views
0

使用Bash,如何在掛起/停止狀態下啓動後臺作業?創建掛起的後臺作業

我必須執行一百次左右的內存密集型,耗時的過程。運行它們依次需要很長的時間:

for i in inputs-list; do 
    memory-hog $i 
done 

而運行他們都同時會殺了我的機器:

for i in inputs-list; do 
    memory-hog $i & 
done 

我想我的進程開始爲背景,暫停工作;那麼我會使用bg恢復其中的一些,同時監視內存消耗。

+1

也許'男人xargs'和搜索'-P'(進程#)可能會幫助你。無論如何,你會因此而瘋狂地開始瘋狂,要麼借用更多的計算機,要麼尋找像'GNU par parallel'這樣的工具。祝你好運! – shellter

+1

使用** GNU並行**來控制每次運行多少個內存並根據內存壓力進行調度。 –

回答

2

在後臺啓動每個進程然後發送SIGSTOP

for i in inputs-list; do 
    memory-hog $i & 
    kill -SIGSTOP $! 
done