Вместо того, чтобы помещать команду ssh в фоновом режиме, вы можете поместить ожидаемый скрипт в фон:
#!/usr/local/bin/expect -f
if {[fork] != 0} exit
disconnect
set password blah-blah
spawn ssh -NL 8002:localhost:22 test@testdomain.com
expect {
EOF {exit 1}
"assword:" {}
}
send -- "$password\n"
send -- "\n"
expect EOF
wait
У меня работает в Linux.По крайней мере, на этапе настройки, остановить его сложнее.Мне пришлось kill -9
, чтобы остановить ожидаемый сценарий.Что, вероятно, также требует уничтожения процесса ssh.