설명

설명

실행 중인 Linux 프로세스에 대해 다음 정보를 어떻게 얻을 수 있습니까?

  • 쉘 환경 변수
  • 작업 디렉토리
  • 명령줄 옵션

답변1

이 정보는 다음에서 얻을 수 있습니다./proc파일 시스템에는 실행 중인 프로세스에 대한 정보가 저장됩니다.

  • cat /proc/<pid>/environ
  • cd /proc/<pid>/cwd; pwd -P
  • cat /proc/<pid>/cmdline

답변2

@atype이 제안한 대로 환경을 출력하면 모든 환경 변수와 해당 값이 구분 기호 없이 연결됩니다.

더 나은 출력을 위해 다음을 사용하십시오.

$ xargs -0 -L 1 echo < /proc/21645/environ 
LANG=en_US.UTF-8
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
SHELL=/bin/bash
TERM=xterm
LC_MESSAGES=en_US.UTF-8
LANGUAGE=en_US.UTF-8

(개인정보 보호를 위해 출력이 단축되었습니다)

설명

/proc/$pid/environ에는 환경 변수가 null로 구분된 목록으로 포함되어 있습니다.

xargs는 *STDIN에서 임의로 긴 목록을 읽고 해당 요소를 도구(이 경우 echo)에 공급하여 최대 명령줄 길이를 초과하지 않도록 하는 도구입니다. 매개변수 "-0"은 항목 구분 기호로 null을 사용하도록 xargs를 전환합니다(기본 공백 또는 개행 대신). 매개변수 "-L 1"은 항목 수를 1로 제한합니다. 따라서 각 환경 변수는 새 줄에 출력됩니다.

관련 정보