Всем привет
Ребят, подскажите, пожалуйста, как сделать правильнее:
Есть задача мониторинга процесса. (скрипт пишется на питоне > 2.7, на вход скрипту подается "полное имя процесса" - то есть, к примеру, если это terminator, то "/usr/share/terminator/terminator"
Посмотрел, подумал, почитал и нашел следующие варианта реализации:
Вариант №1:
Обход в цикле директории /proc/{pid}/cmdline и поиска там нужной строчки. В конце концов имеем PID
Вариант №2:
Выполнение в питоновском скрипте чего-нибудь вроде ps aux | grep process_name. Получаем PID процесса
Вопрос: Как делать правильнее? Все таки первый вариант реализовано через нативные функции, но долго и ресурсозатратно. (Все таки обход всех директорий /proc/)
Второй вариант, быстро но не нативно, и вот не знаю. Или, может быть есть еще варианты реализации?
Спасибо
пока что глубоко не копал, просто в интерпретаоре вызвал:
raise CalledProcessError(retcode, cmd, output=output)
subprocess.CalledProcessError: Command '['pidof', '/usr/share/terminator/terminator']' returned non-zero exit status 1