1
$1 &
echo $!
是否有不同的方式在後臺啓動命令並立即返回pid?Bash:運行後臺作業並獲得pid
所以當我啓動bash run.sh "python worker.py"
它會給我啓動工作的PID。
我使用的是paramiko,它不適用於python worker.py &
的python庫。所以我想創建一個bash腳本,這將在遠程服務器上爲我執行此操作。
$1 &
echo $!
是否有不同的方式在後臺啓動命令並立即返回pid?Bash:運行後臺作業並獲得pid
所以當我啓動bash run.sh "python worker.py"
它會給我啓動工作的PID。
我使用的是paramiko,它不適用於python worker.py &
的python庫。所以我想創建一個bash腳本,這將在遠程服務器上爲我執行此操作。
由於您使用的是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}'
可能給你想要的東西。
什麼問題? – devnull
是否有不同的方式在後臺啓動命令並立即返回pid? – KJW
當你做「bash run.sh」時,你在背景中沒有做任何事 - 你在前臺做這件事。 –