Como obter o último PID quando o último processo gerou uma criança e saiu?

1

Eu inicio ssh -S mysocket example.com para conectar example.com . Se minha conexão parar, preciso kill desse processo:

ssh -S mysocket example.com -N -L 1234:localhost:1234 &
last_pid=$!

...(do something blocker)

kill $last_pid 

Mas isso não funciona. Se last_pid for XXXX , quando eu verificar o processo real com ps -ef | grep ssh , o processo 'pid parece XXXX + 1 .

O que significa que ssh -S socket começa em segundo plano, gera um filho e sai.

Como capturamos o último pid neste caso?

    
por ceremcem 15.07.2017 / 14:51

1 resposta

1

Sim, o ssh está gerando o processo do multiplexador para ControlMaster se você usar a opção -S . Não existe uma maneira simples de solicitar esse PID diretamente ao ssh , mas supondo que você não esteja gerando muitos processos, você pode usar a saída do ps para obter o PID, por exemplo

ps f | grep "ssh -S mysocket" | cut -d " " -f 1
    
por 15.07.2017 / 15:03

Tags