Ahogy fentebb írták, strace -el nézz bele a processekbe, hogy pontosan mire és kire várnak. A systemd nem fogja kezelni az orphan process-t, ő meghagyja zombinak ;)
De egy gyors tipp: az ssh szerintem normális körülmények között megáll és erről küld signal-t a scriptednek (ha az sshd elveszti a handler-t, akkor egy SIGHUP -al megemlékezik róla), hogy lépjen ki, de ezt a scripted nem teszi meg.
valahogy így:
function sighup_handler() {
...
exit 1
}
trap 'sighup_handler' 1