Задать вопрос
@nano_e_t_4

Как правильно получить PID процесса в скрипте?

Всем привет
Ребят, подскажите, пожалуйста, как сделать правильнее:
Есть задача мониторинга процесса. (скрипт пишется на питоне > 2.7, на вход скрипту подается "полное имя процесса" - то есть, к примеру, если это terminator, то "/usr/share/terminator/terminator"
Посмотрел, подумал, почитал и нашел следующие варианта реализации:
Вариант №1:
Обход в цикле директории /proc/{pid}/cmdline и поиска там нужной строчки. В конце концов имеем PID
Вариант №2:
Выполнение в питоновском скрипте чего-нибудь вроде ps aux | grep process_name. Получаем PID процесса
Вопрос: Как делать правильнее? Все таки первый вариант реализовано через нативные функции, но долго и ресурсозатратно. (Все таки обход всех директорий /proc/)
Второй вариант, быстро но не нативно, и вот не знаю. Или, может быть есть еще варианты реализации?
Спасибо
  • Вопрос задан
  • 2306 просмотров
Подписаться 3 Оценить Комментировать
Решения вопроса 1
@nirvimel
from subprocess import check_output
def get_pid(name):
    return map(int, check_output(["pidof", name]).split())

Возвращает список pid-ов, соответствующих данному имени.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@YuriyIvanov
pidof processname
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы