Состояние процесса на AIX

Из C или C ++ вы обычно используете pselect () , чтобы проверить, есть ли данные, готовые для чтения. Вы можете сделать это, не устанавливая режим дескриптора файла на неблокирующий.

2
26.08.2014, 04:18
2 ответа

Возможно, это должен быть комментарий - но у меня недостаточно «статуса», чтобы сделать это, вздох ... - поэтому я пытаюсь дать отправную точку для ответа!

«как мы попали в linux ...» мало что говорит человеку, работающему с AIX. Я попробовал кое-что простое: можно ли принять статус «ДРУГОЕ» в качестве ответа.

С сервера Linux, который я пробовал:

root@x064:[/data]cat /proc/1/status

  ▒▒/▒0▒0▒;▒
            ▒▒▒9▒E▒4▒œOTHER
root@x064:[/data]
root@x064:[/data/prj/gnu/less-481]strings /proc/1/status
OTHER

В AIX это выглядит похоже:

michael@x071:[/home/michael]cat /proc/1/status
  dò0ò0 ~5!(FiË3ã­ú¤ÀOTHER
michael@x071:[/home/michael]strings /proc/1/status
!(Fi
Ë3ã­ú
OTHER

imho - строки! (Fi и Ë3ãú выглядят просто как строки, но это просто «нормальный статус, который отображается как строки»

] Для просмотра / proc вам следует обратить внимание на следующие команды:

michael@x071:[/home/michael]ls -l /usr/bin/proc*
-r-xr-xr-x    1 bin      bin            8462 Jan 12 2015  /usr/bin/proccred
-r-xr-xr-x    1 bin      bin           23820 Jan 12 2015  /usr/bin/procfiles
-r-xr-xr-x    1 bin      bin           14852 Jan 12 2015  /usr/bin/procflags
-r-xr-xr-x    1 bin      bin           11222 Jan 12 2015  /usr/bin/procldd
-r-xr-xr-x    1 bin      bin           20884 Jan 12 2015  /usr/bin/procmap
-r-xr-xr-x    1 bin      bin            8274 Jan 12 2015  /usr/bin/procrun
-r-xr-xr-x    1 bin      bin            8974 Aug 06 2011  /usr/bin/procsig
-r-xr-xr-x    1 bin      bin           24534 Jan 29 2015  /usr/bin/procstack
-r-xr-xr-x    1 bin      bin            8502 Jan 12 2015  /usr/bin/procstop
-r-xr-xr-x    1 bin      bin           34888 Jan 12 2015  /usr/bin/proctree
-r-xr-xr-x    1 bin      bin           13612 Jan 12 2015  /usr/bin/procwait
-r-xr-xr-x    1 bin      bin            9158 Jan 12 2015  /usr/bin/procwdx
0
27.01.2020, 22:59

Содержимое AIX /proc/<PID>/statusдолжно быть структурировано в соответствии с struct pstatus, определенным в <sys/procfs.h>включаемом файле. Насколько мне известно, для файловой структуры /proc/<PID>/*не существует стандарта, поэтому любое чтение /procследует рассматривать как специфичный для ОС -код. Не ждите строгого -для -одного сопоставления для каждого элемента данных, который вы можете найти в Linux /procв любой другой ОС :данные могут быть расположены совсем по-другому, или некоторые элементы данных могут полностью отсутствовать.

См. документацию IBM:https://www.ibm.com/support/knowledgecenter/en/ssw_aix_72/filesreference/proc.html

Для C API, как правило, считывают /proc/<PID>/statusв буфер подходящего размера (или mmap()его ), приводят указатель буфера/mmap в (struct pstatus *)и используют его для доступа к элементам данных..

В зависимости от того, какая именно информация о состоянии вам нужна, вам может потребоваться прочитать другие файлы в том же каталоге, используя их эквивалентные типы структур для доступа к элементам данных.

1
27.01.2020, 22:59

Теги

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