PID
다음을 사용하여 (두 번째 열)을 표시 할 수 있습니다 .
ps -ef | grep runner | awk {'print$2'}
2432
6346
6348
6350
6352
7407
7410
7416
10824
17305
17494
29658
그런데 제가 보여드리고 싶은 것은 (8열) pwdx <PID>
입니다 .COMMAND
어떻게 해야 하나요?
답변1
awk를 사용하여 ps 출력을 필터링하는 대신 ps -o 옵션을 사용하여 원하는 것을 얻으십시오.
ps -e -o pid,comm
위에서 설명한 대로 수행되어야 합니다. 인쇄에 대한 자세한 내용은 ps 매뉴얼 페이지를 참조하십시오.
업데이트: 제대로 작동하지 않는 것으로 나타났습니다 pwdx
. 크기에 맞게 입어보세요.
#!/bin/bash
ps -o pid= -o comm= |
while read LINE
do
eval $(echo $LINE |
awk '{pid=$1; comm=$2; printf "echo -n \"%s \"; pwdx %s\n", comm, pid}' )
done
원하는 프로세스를 얻으 려면 플래그를 추가해야 할 수도 있습니다 ps
. 위의 프로세스는 사용자 ID에 대한 프로세스만 보여줍니다.
답변2
2열과 8열을 인쇄하려면 인쇄할 때 $8만 추가하면 됩니다.
ps -ef | grep runner | awk {'print $2" "$8'}
답변3
나는 이렇게 할 것이다:
pwdx $(ps -ef | grep runner | awk {'print$2'})
대체 구문:
pwdx `ps -ef | grep runner | awk {'print$2'}`
답변4
pwdx $(pgrep -f runner)|tr -d : > /tmp/1
pgrep -fl runner > /tmp/2
join /tmp/[12]