Как проверить, работает ли процесс с заданным PID? - PullRequest
5 голосов
/ 10 января 2011

У меня есть программа, написанная на C #, работающая на Linux с использованием Mono. Программа записывает свой PID в файл. Теперь я хочу проверить, запущен ли процесс с этим PID при запуске. Есть ли способ использовать моно? Если нет, как я могу сделать это, используя стандартные функции / инструменты Linux? Или я должен проверить / proc / PID / cmdline?

Ответы [ 2 ]

2 голосов
/ 10 января 2011

Стандартные функции - это запуск kill -0 PID, чтобы увидеть, запущен ли процесс, и проверить код выхода, функция 0 запущена.

1 голос
/ 10 января 2011

Вы также можете проверить, что каталог / proc / $ PID существует (нет необходимости выполнять системные команды).Должно работать в Linux, не знаю, если в других версиях Unix.

И есть также: System.Diagnostics.Process.GetProcessById(int id), который должен выдавать исключение, если процесс с данным идентификатором не запущен.Не знаю, работает ли он на Mono.

...