2014-05-15 34 views
1
$1 & 
echo $! 

是否有不同的方式在後臺啓動命令並立即返回pid?Bash:運行後臺作業並獲得pid

所以當我啓動bash run.sh "python worker.py"它會給我啓動工作的PID。

我使用的是paramiko,它不適用於python worker.py &的python庫。所以我想創建一個bash腳本,這將在遠程服務器上爲我執行此操作。

+0

什麼問題? – devnull

+0

是否有不同的方式在後臺啓動命令並立即返回pid? – KJW

+0

當你做「bash run.sh」時,你在背景中沒有做任何事 - 你在前臺做這件事。 –

回答

1

由於您使用的是bash,因此您只需從jobs獲取後臺進程的列表,並指示它通過-l標誌返回PID。引述man bash

jobs [-lnprs] [ jobspec ... ] 
    jobs -x command [ args ... ] 
      The first form lists the active jobs. The options have the 
      following meanings: 
      -l  List process IDs in addition to the normal information. 

所以你的情況,像 jobs -l | grep 'worker.py' | awk '{print $2}'可能給你想要的東西。