알았어, 그럼 어쩌지?
pid를 인수로 사용하고 명령 이름, 프로세스와 관련된 다양한 네트워크 연결을 제공하고 최대 3개의 상위 프로세스와 최대 3세대의 하위 프로세스에 대한 정보도 제공하는 스크립트를 작성해야 합니다.
나는 이 질문에 대한 답을 원하지는 않지만 이 작업을 수행하기 위해 올바른 길을 가는 최선의 방법에 대한 지침을 원합니다.
이것이 제가 시작한 일입니다:
#!/bin/bash
#get pid from user
PID=$1
#echo pid and find a way to describe process to user
echo $PID #whatever it is = #whatever the command name is
#network portion
sudo netstat -p grep $PID
#this return information related to the process itself
ps -ef f|egrep "(UID|$PID)"
코드의 마지막 줄은 나에게 최소한 가치 있는 것을 반환합니다. 프로세스 관련 정보, 트리 계층 구조 등을 얻을 수 있습니다.
나는 기술적인 지식이 많지 않기 때문에 이 코드가 이 작업에 적합하지 않거나 사용할 수 없는 것처럼 보이는지 알고 있습니다. 처음부터 시작해서 다른 아이디어를 생각해내야 한다면 그렇게 할 것입니다. 도움이나 안내를 주시면 대단히 감사하겠습니다.
답변1
다음을 사용하여 상위 프로세스의 PID를 얻을 수 있습니다.
PID=1234
ps -o ppid --no-headers -p "$PID"
또는
awk '/^PPid:/ { print $2 }' /proc/$PID/status
변수에 넣어주시면 됩니다
PPID="$(awk '/^PPid:/ { print $2 }' /proc/$PID/status)"