关闭/重新启动 ssh 会话会杀死在该会话上运行的程序吗?

关闭/重新启动 ssh 会话会杀死在该会话上运行的程序吗?

我正在使用 Web 控制台 ssh 到 aws 实例。然后我启动 xrdp 会话,但该会话不会通过 ssh 进行。

但是,当我重新启动或停止此 ssh 会话时,我在此会话中运行的所有内容也会被终止(例如 xrdp),即使我已使用“&”将其分叉到后台,我也不知道这是否是预期行为或与通过浏览器会话的 ssh 相关。解决这个问题并且不杀死本次会议中每个程序的想法将非常感激:)

答案1

这是预期的行为,因为当终端控制进程退出时,它会SIGHUP向其所有子进程发送消息以通知它们终端已挂起。子进程如何SIGHUP处理仅取决于子进程。将进程置于后台不会阻止信号,它只是将子进程与终端分离。阻止挂断信号你应该运行你的程序nohup,例如nohup myprogram &。在大多数情况下这应该可以完成工作。

相关内容