我的设置是
- AWS 上的 Ubuntu 10.04
- Autossh 为 MySQL 创建隧道
使用 Upstart(/etc/init/autossh.conf)自动创建隧道:
respawn
console none
start on (local-filesystems and net-device-up IFACE=eth0)
stop on [!12345]
script
#user/IP Address redacted
exec autossh -M 20000 -o StrictHostKeyChecking=no -L 3306:127.0.0.1:3306 [email protected]
end script
启动时隧道已创建,运行良好。经过一段时间随机空闲后,隧道就死机了。有什么办法可以让它继续运行吗?我不知道是什么杀死了 autossh。
答案1
我猜这是/etc/ssh/sshd_config
服务器上的文件中超时设置。随机性可能与 mysql 服务器未发送数据的时间有关$idle_timeout_value
您应该能够检查服务器上的日志以查看导致断开连接的原因。
答案2
exec autossh -f -M 20000 -o StrictHostKeyChecking=no -NL 3306:127.0.0.1:3306 [email protected]
我发现我需要 -N 才能允许 autossh 上的 -f 工作。使用 -f,它现在会降到后台。结果发现 root 用户正在终止 autossh。
为什么,我不确定,但是现在它运行得更像真正的守护进程,它运行完美。