Solaris에서는 /usr/ucb/ps auxww
전체 명령줄 인수를 제공합니다(긴 명령 + 인수는 잘리지 않음).
그리고 ps
형식화된 출력을 제공하는 -o 옵션이 있습니다.
두 가지를 모두 수행하는 단일 명령(또는 단일 행 명령)이 있습니까?
참고: 이 문제는 특정 너비 이후에 매개변수를 자르는 것과도 관련되어 ps
있으므로 /usr/ucb/ps
.
답변1
내가 아는 한, 명령은 없습니다.
Solaris는 ps
다음에서 명령줄 인수와 같은 프로세스 데이터를 얻습니다./proc/[PID]/psinfo
문서, struct psinfo
각각을 채울 데이터가 포함되어 있습니다./usr/include/sys/procfs.h
:
#define PRARGSZ 80 /* number of chars of arguments */
typedef struct psinfo {
int pr_flag; /* process flags (DEPRECATED; do not use) */
int pr_nlwp; /* number of active lwps in the process */
.
.
.
char pr_fname[PRFNSZ]; /* name of execed file */
char pr_psargs[PRARGSZ]; /* initial characters of arg list */
...
따라서 여기에서 전체 명령줄 인수 세트를 얻을 수 없습니다 /usr/bin/ps
. /usr/ucb/ps ...
이미 알아차린 대로 사용하고 awk
유사한 방법을 사용하여 출력 형식을 지정할 수 있습니다 . 또한 pargs
명령줄 인수를 발행하는 데 사용할 수도 있습니다. (설치 위치는 pargs
Solaris 버전에 따라 다릅니다.)
그러나 프로세스는 매개변수를 수정할 수 있으며 완전한 매개변수 정보를 얻으려면 프로세스의 주소 공간을 읽을 수 있는 권한이 필요합니다.
답변2
ps -eo args
각 매개변수를 보고 싶다면 사용할 수 있다고 생각합니다.
어쨌든 첫 번째 예를 더 많은 옵션과 결합할 수 있습니다.
ps -eo user,pid,args