讓我們假設我有多個文件路徑,從終端, 來看,我希望他們能夠在後臺並行而不輸出其輸出到控制檯屏幕上運行。 (它們的輸出應該保存到python文件本身定義的其他日誌路徑中)。運行從平行的bash多個腳本,而不進行打印輸出到控制檯
的路徑是這種格式:
/home/Dan/workers/1/run.py
/home/Dan/workers/2/run.py etc.
當我嘗試做這樣的事情在後臺運行一個工人似乎工作:
在例如:cd /home/Dan/workers/1/
和python run.py > /dev/null 2>&1 &
而且ps -ef |grep python
,確實顯示腳本在後臺運行而不打印到控制檯,但打印到其預定義的日誌路徑。
#!/bin/bash
for path in /home/Dan/workers/*
do
if [-f path/run.py ]
then
python run.py > /dev/null 2>&1 &
fi
done
任何想法有什麼不同:
然而,當我嘗試通過bash腳本發動他們,我沒有Python腳本下面的代碼後運行? 在bash腳本中,我嘗試一個接一個地啓動許多腳本,就像我只爲一個腳本所做的那樣。
請看看[編輯的幫助(HTTP: //stackoverflow.com/editing-help)。用四個空格前綴代碼行。 – Cyrus
這應該起作用了(假設'fi'後面有'done',反正;如果那不在那裏,你應該得到一個錯誤信息)。請在'done'之後加上'wait',如果它不在那裏,然後發佈'bash -x yourscript'的輸出。 – zwol
@zwol:那裏已經有'done'了,我忘了把它放在這裏,但是我不明白你關於'bash -x yourscript'的注意事項,請你詳細解釋我不熟悉bash – JavaSa