AIX에서 동등한 /proc/process_pid/environ 파일은 무엇입니까?

AIX에서 동등한 /proc/process_pid/environ 파일은 무엇입니까?

일반적으로 저는 Linux에서 이 명령을 사용하여 string -a이 파일을 봅니다.

AIX에도 비슷한 것이 있나요? 난 아무것도 못 찾았어/proc/pid_process

나는 이 파일을 사용하여 특정 프로세스가 어떤 환경 변수를 보고 있는지 알아냅니다.

예를 들어, 서버에 Oracle 데이터베이스가 설치되어 있습니다. 프로세스가 어떤 환경 변수를 보고 있는지 알고 싶다면 pmon프로세스를 찾을 수 있습니다.

[root@oracle-database 1664]# ps aux|grep pmon|grep -v grep
oracle    8897  0.0  0.5 1133456 5312 ?        Ss   Nov27   0:18 ora_pmon_idbcloud
[root@oracle-database 1664]#

그리고 파일을 보세요/proc/process_pid/environ

[root@oracle-database 1664]# strings -a /proc/8897/environ
XDG_SESSION_ID=4689
HOSTNAME=oracle-database
SHELL=/bin/bash
TERM=xterm
HISTSIZE=1000
USER=oracle
ORACLE_SID=idbcloud
ORACLE_BASE=/u01/app/oracle
MAIL=/var/spool/mail/oracle
PATH=
PWD=/u01
LANG=en_US.UTF-8
HISTCONTROL=ignoredups
SHLVL=1
HOME=/home/oracle
LOGNAME=oracle
LESSOPEN=||/usr/bin/lesspipe.sh %s
ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
NLS_DATE_FORMAT=DD/MM/YYYY HH24:MI:SS
_=/bin/rlwrap
OLDPWD=/u01
ORA_NET2_DESC=9,12
SKGP_SPAWN_DIAG_POST_FORK_TS=1606503159
SKGP_HIDDEN_ARGS=<FATAL/S/PMON/x0/x1/x0/x5AF86E15/8888/8888/x0/x2/x1/x5AF86E38/1606503159/1606503159/196609/0/(nil)>
SKGP_SPAWN_DIAG_PRE_FORK_TS=1606503159
SKGP_SPAWN_DIAG_PRE_EXEC_TS=1606503159
ORACLE_SPAWNED_PROCESS=1
RDMAV_FORK_SAFE=1
RDMAV_HUGEPAGES_SAFE=1

답변1

/procAIX는 Linux와 동일한 스타일의 의사 파일 시스템을 제공하지 않습니다 . 참조 매뉴얼 페이지:

후자는 환경 전용 의사 파일을 기록합니다.

   /proc/[pid]/environ
          This file contains the initial environment that was set when
          the currently executing program was started via execve(2).

전자는 프로세스 정보가 포함된 파일을 설명합니다.

개인 정보
필수 프로세스에 대한 정보가 포함되어 있습니다.메모주문하다. 프로세스에 여러 스레드가 포함된 경우 대표 스레드를 사용하여 포크합니다.로그 정보정보. 이 파일의 형식은 다음과 같습니다.struct psinfo유형이며 다음 멤버를 포함합니다.

특히:

prptr64_t pr_envp; /* 초기 환경 벡터의 주소
                                       사용자 프로세스에서*/

당신이 쓸 수 있지만스크립트해당 데이터 구조를 읽습니다.grep또는strings: 이 주소는 메모리 이미지 파일에 액세스하는 데 사용됩니다.

~처럼
프로세스의 주소 공간 이미지를 포함합니다. 이것~처럼파일을 읽고 쓰기 위해 열 수 있습니다. 이것lseek서브루틴은 관심 있는 가상 주소로 파일을 찾는 데 사용됩니다. 그런 다음 각각 읽기 및 쓰기 서브루틴을 사용하여 주소 공간을 보고 수정할 수 있습니다.

답변2

~처럼토마스 라고,아니요문서그러나 AIX 시스템에서는ps주문하다 하다"프로세스에 어떤 환경 변수가 표시되는지 알 수 있습니다"

e
    Displays the environment as well as the parameters to the command, up to a limit of 80 characters.
ew
     Wraps the display from the e flag one extra line.
eww
     Wraps the display from the e flag and displays the ENV list until the flag reaches the LINE_MAX value.
ewww
     Wraps the display from the e flag and displays the ENV list until the flag reaches the INT_MAX value.

예를 들어:

$ ps ewww 1835516
      PID    TTY STAT  TIME COMMAND
  1835516      - A     7:02 /usr/sbin/syncd 60 _=/usr/bin/nohup LANG=C PATH=/usr/sbin:/etc:/usr/bin LC__FASTMSG=true ODMDIR=/etc/objrepos HOME=/ PWD=/ CFGLOG=default NLSPATH=/usr/lib/nls/msg/%L/%N:/usr/lib/nls/msg/%L/%N.cat LIBPATH=/usr/lib:/lib

관련 정보