Linux에서와 마찬가지로 AIX에서도 프로세스 상태를 가져오고 싶지만 /proc/<PID>/stat
파일에서 상태를 찾을 수 없습니다. /proc/<PID>/status
거기에 암호화된 텍스트가 있습니다. 특정 프로세스의 상태를 얻으려면 AIX에서 어떤 파일에 액세스해야 합니까?
답변1
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 *)
데이터 요소에 액세스하는 데 사용합니다.
원하는 상태 정보에 따라 데이터 요소에 액세스하기 위해 동등한 구조 유형을 사용하여 동일한 디렉터리에 있는 다른 파일을 읽어야 할 수도 있습니다.
답변2
답변3
이것은 아마도 코멘트여야 합니다. 하지만 그렇게 하기에는 "상태"가 충분하지 않습니다. 한숨... - 답변의 시작점을 제공하려고 합니다!
"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