Não, a maneira correta de matar autossh
é simplesmente matar o processo autossh
, nada mais.
O motivo é
# file $(which autossh)
/usr/bin/autossh: POSIX shell script, ASCII text executable
esse autossh
é simplesmente um script de shell, não um serviço . Começa um novo programa, na sua última linha,
exec /usr/lib/autossh/autossh "$@"
novamente, não é um serviço. Quanto a exec
(você pode verificar isso no wiki dos hackers Bash ), é um comando construído em shell que substitui o shell atual pelo seguinte comando ( /usr/lib/autossh/autossh "$@"
neste caso) sem iniciar um novo processo. Portanto, a maneira somente de parar autossh
é matar o script de chamada, por exemplo
pkill -3 autossh
(obrigado a dviljoen por apontar a importância de usar a sinalização -3 , veja abaixo). Incidentalmente, matar a conexão ssh
não funcionará, porque o comando de chamada ( isto é, , o acima) simplesmente iniciará uma nova conexão assim que perceber que a antiga foi descartada.