Вы можете использовать модуль subprocess
, чтобы получить вывод команды ps
:
import subprocess, re
psoutput = subprocess.check_output(['ps','-o','pid,cmd'])
, которая в моем случае выдает:
PID CMD
9650 bash
10290 python app.py
10291 ps -o pid,cmd
Затем вы можете разобрать, чтовывод для извлечения PID оболочки:
pid = re.findall('\s*(\d+)\s*(bash|zsh|fish)',psoutput)[0][0]
, который выводит 9650
в моем случае.
Из PID вы можете извлечь путь следующим образом (в моем случае PID = 9650):
path = subprocess.check_output(['readlink','-f','/proc/'+pid+'/exe'])
который выводит в моем случае:
/bin/bash