/ / Баш: работа с фона и получаване на пид - питън, linux, bash, pid, paramiko

Баш: работа с фона и получаване на pid - python, linux, bash, pid, paramiko

$1 &
echo $!

има ли друг начин да стартирате команда във фонов режим и да върнете незабавно пика?

Така че, когато стартирам bash run.sh "python worker.py" това ще ми даде пика на стартираната работа.

Аз използвам парамико, библиотека на питън, която не работи python worker.py &, така че искам да създам баш скрипт, който ще направи това за мен на отдалечения сървър.

Отговори:

1 за отговор № 1

Тъй като използвате баш, можете просто да получите списъка с фона на процесите jobs, и го инструктирайте да върне PID чрез -l флаг. Да цитираш 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}" вероятно ще ви даде това, което искате.