Você pode obter o PID do processo pai com isso:
PID=1234
ps -o ppid --no-headers -p "$PID"
ou com
awk '/^PPid:/ { print $2 }' /proc/$PID/status
Você obtém isso em uma variável com
PPID="$(awk '/^PPid:/ { print $2 }' /proc/$PID/status)"
Ok, então
Eu preciso escrever um script que tome o pid como argumento e me dê o nome do comando, as várias conexões de rede associadas ao processo, e ele também fornecerá essas informações para até três processos ancestrais e até três gerações de descendentes.
Eu não quero a resposta para isso, mas eu quero algumas orientações sobre como posso me colocar no caminho certo para terminar isso.
Isto é o que eu comecei com:
#!/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)"
A última linha de código, pelo menos, retornará algo um pouco valioso para mim: eu posso obter algumas informações relacionadas ao processo, uma hierarquia semelhante a uma árvore, ect ect.
Eu não possuo muito conhecimento técnico, então eu entendo se esse código simplesmente parece horrível / inutilizável para esta tarefa. Se eu preciso começar do zero e ter idéias diferentes, eu vou. Qualquer ajuda ou orientação seria muito apreciada.
Você pode obter o PID do processo pai com isso:
PID=1234
ps -o ppid --no-headers -p "$PID"
ou com
awk '/^PPid:/ { print $2 }' /proc/$PID/status
Você obtém isso em uma variável com
PPID="$(awk '/^PPid:/ { print $2 }' /proc/$PID/status)"
Tags process