pkill comando com sessionid não está matando toda a árvore de processos

0

Estou executando o seguinte comando para interromper toda a árvore de processos (por exemplo, pai e todos os seus processos filho / filho):

pkill -9 -s {sessionID}

Para obter sessionID, estou usando o seguinte comando:

ps -o pid,sess -u <username> | grep <pid> | awk '{print $2}'

Às vezes, o comando pkill mata toda a árvore de processos, mas às vezes não funciona. Alguns dos processos filhos ainda estão sendo executados em segundo plano. Por que? Há algo de errado na minha lógica? Existe alguma condição limite ausente? Existem situações em que o comando pkill não elimina processos filhos?

    
por user2681374 26.05.2015 / 07:26

1 resposta

0

As crianças de um processo não precisam necessariamente compartilhar seu ID de sessão. Se fosse esse o caso, o processo every teria o ID da sessão 1. Você também pode tentar usar IDs do grupo de processos, mas isso também tem a mesma limitação.

Percorrer a árvore de processos tem a limitação de que os processos double-bifurcados não fazem mais parte da árvore, mas podem ser sua melhor aposta. Exemplos desse método:

por muru 26.05.2015 / 08:15