LINUX.ORG.RU

История изменений

Исправление iVS, (текущая версия) :

Глянул код procps — всё очень грустно. Разработчик не осилил парсинг /proc/<id>/stat и попросту сравнивает с /proc/<id>/cmdline. При этом заявляет, что код переписан с sysvinit. Так-то оно так, но переписан через одно место (в sysvinit парсят stat файл). При этом man proc говорит:

/proc/[pid]/stat
    Информация о состоянии процесса. Она используется командой ps(1). Определяется в /usr/src/linux/fs/proc/array.c.

    Вот поля с соответствующими им спецификаторами формата scanf(3) по порядку:

    pid %d      (1) Идентификатор процесса.

    comm %s     (2)  Имя  исполняемого  файла  в  круглых  скобках.  Его  можно увидеть независимо от того, находится ли исполняемый файл в подкачке или нет.
Если уж ps использует, то надо было делать правильно.

Исходная версия iVS, :

Глянул код procps — всё очень грустно. Разработчик не осилил парсинг /proc/<id>/stat и попросту сравнивает с /proc/<id>/cmdline. При этом заявляет, что код переписан с sysvinit. Так-то оно так, но переписан через одно место (в sysvinit парсят stat файл). При этом man proc говорит:

/proc/[pid]/stat
    Информация о состоянии процесса. Она используется командой ps(1). Определяется в /usr/src/linux/fs/proc/array.c.

    Вот поля с соответствующими им спецификаторами формата scanf(3) по порядку:

    pid %d      (1) Идентификатор процесса.

    comm %s     (2)  Имя  исполняемого  файла  в  круглых  скобках.  Его  можно увидеть независимо от того, находится ли исполняемый файл в подкачке или нет.
Если уж ps использует, то надо было делать правильно. Жаль, это код переписывать надо.