在我的服务器升级到 ubuntu 14.04 后,当我重新启动或从 putty 暂停时,服务器会正常重新启动,但升级前服务器不会终止 ssh 会话。有人能帮忙吗?谢谢!
答案1
背景信息
Ubuntu 将 System-V 改为 Upstart 作为 init 系统。通过启用并行启动/停止服务,它的速度快了很多,大大减少了启动时间。服务有时相互依赖,为此 System-V 在每个运行级别都有固定的启动/停止顺序。对于 Upstart,依赖关系是声明性的,例如“在网络启动之前启动防火墙”,这将确保在防火墙完成之前不会启动网络。没有此依赖关系的其他服务可以通过这种方式启动。
更改 SSH Upstart 配置
默认情况下,Ubuntu 14.04 中的 SSH Upstart 初始化配置不依赖其他服务,因此它可能会在网络关闭后被带入。这可能会导致客户端连接断开,因为 SSH 服务器在某些情况下无法访问客户端。
/etc/init/ssh.conf
在(SSH Upstart 初始化配置)中添加依赖项:
在下面
stop on runlevel [!2345]
添加
stop on stopping networking
假设您不是用户网络管理员,而是常规/etc/network/interfaces
网络配置,这将确保在网络关闭之前关闭 SSH 守护进程。
注:未经测试,请验证。
您可能希望将此报告为针对该openssh-server
软件包的错误。我认为对 Ubuntu 来说,对 SSH init 配置有适当的依赖性将是一个改进。