줄을 자르지 않고 Solaris에서 전체 프로세스 목록을 얻는 방법은 무엇입니까?

줄을 자르지 않고 Solaris에서 전체 프로세스 목록을 얻는 방법은 무엇입니까?

줄을 자르지 않고 Solaris에서 전체 프로세스 목록을 생성하는 방법이 있습니까? ps다음 매개변수를 사용하여 명령을 시도했습니다 .

  -f는 전체 목록을 생성합니다. (아래 참조
                      전체 목록에서 각 열의 중요성 -
                      영국. )
  -l은 긴 목록을 생성합니다. (아래를 참조하세요.)

따라서 이 두 가지 모두 내가 원하는 것을 수행하는 것처럼 보이지만 ps 매뉴얼 페이지에서 더 자세히 보면 다음과 같은 내용이 있습니다.

 
 args 명령과 모든 인수는 다음과 같이 제공됩니다.
                         끈. 구현이 잘릴 수 있음
                         이 값은 필드 너비에 해당합니다.
                         구현 여부에 따라 다릅니다.
                         추가 잘림이 발생합니다. 이것은
                         문자열인지 여부가 지정되지 않음
                         매개변수의 버전을 나타냅니다.
                         명령에 전달될 때 목록
                         시작했을 때 또는 버전
                         매개변수가 수정되었을 수 있습니다.
                         앱을 통해. 응용 프로그램은 할 수 없습니다
                         수정이 가능한지 여부에 따라 다릅니다.
                         매개변수 목록을 수정하고
                         화는 ps의 출력에 반영됩니다.
                         Solaris 구현 제한 사항
                         문자열은 80바이트입니다.
                         매개변수 목록의 버전은 그대로입니다.
                         시작 시 명령에 전달됩니다.

이는 기본적으로 출력이 잘리고 이에 대해 제가 할 수 있는 일이 없음을 의미합니다. 그래서 저는 여기 있습니다. 물론 다른 사람들도 이 문제를 겪었고 해결 방법이 있을 수도 있습니다. ps에서는 이 작업을 수행할 수 없으므로 이를 수행하려면 다른 도구를 사용해야 합니다. 정확합니까?

답변1

당신은 시도 할 수 있습니다

pargs <PID>

그러면 모든 매개변수 목록이 제공됩니다.

아니면 다른 ps를 사용하세요. 루트(또는 충분한 권한이 있는 사용자)로 실행하는 경우

/usr/ucb/ps auxww

모든 주장을 당신에게 줄 것입니다. SUNWscpu, "소스 호환성(Usr)"의 일부입니다.

답변2

커널은 명령줄 인수를 추적할 필요가 없습니다. 프로그램이 호출로 시작되면 커널은 매개변수를 프로세스 메모리에 복사해야 합니다( execveC 프로그램에서처럼 사용할 수 있도록). argv이후 커널은 초기 명령줄 인수를 저장하는 데 사용된 메모리를 삭제할 수 있습니다. 프로세스가 매개변수 복사본을 덮어쓸 수 있도록 허용합니다. 그러니 논란의 여지가 전혀 없을 수도 있다.

일부 UNIX 변형은 어떤 형태로든 매개변수 복사본을 보관합니다. Solaris /proc/$pid. OpenSolaris 2009.06부터 매개변수의 유일한 추적은 입니다 . 매개변수는 공백으로 연결되며(따라서 와 를 /proc/$pid/psinfo구분할 수 없음 ) 결과 문자열은 80바이트로 잘립니다. 이 필드는 열에 인쇄되는 내용 입니다 .foo "one" "two"foo "one two"/proc/$pid/psinfopsargs

그런데 -f-l옵션은 필드가 특정 너비로 ​​잘리는지 여부가 아니라 인쇄되는 필드를 제어합니다.

답변3

ps -e실행 중인 모든 프로세스의 목록을 제공합니다. 이 ps -elf.

답변4

ps사용하는 명령 에 따라 다음을 사용합니다.

ps -auxw

관련 정보