Как получить статус процесса, чей идентификатор процесса дается из программы? - PullRequest
0 голосов
/ 17 августа 2010

Мне нужно получить статус процесса (запущен ли процесс или остановлен), чей идентификатор процесса указан в моей программе на c (я использую linux).я планировал использовать команду exec и написал ниже заявление

execv ("ps -el | grep | awk '{print $ 2}'", NULL);

Но это не дает мне желаемоговывод.

Пожалуйста, дайте мне знать, где я не прав.

Ответы [ 3 ]

3 голосов
/ 17 августа 2010

Третье поле в /proc/<pid>/stat содержит статус процесса: R, если он запущен, S, если он спит (есть и несколько других, например D для ожидания диска и Z для зомби).

1 голос
/ 18 августа 2010

Я сомневаюсь, что exec - это семейство звонков, которые вам нужны здесь. система (3) может быть более идеальной.

1 голос
/ 17 августа 2010

Вызов exec возвращает код ошибки, соответствующий тому, было ли выполнение программы успешным или нет.

Если вы разветвляете дочерний процесс и затем выполняете команду в дочернем процессе, вы можете прочитать его состояние завершения в родительском процессе с помощью вызова waitpid.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...