Script para tomar pid, dar nome cmd, conexões de rede, árvore de processo, pai / avô / filho

1

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.

    
por MrHal9000 16.09.2017 / 23:42

1 resposta

0

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)"
    
por 17.09.2017 / 01:15

Tags