当我丢失到* nix框的远程连接时,运行进程会发生什么?


16

我偶尔会失去与VPS的远程SSH连接。我screen用于长时间运行的进程,但我想知道screen如果我丢失了与盒子的连接,我在会话中运行的进程会发生什么。

当我重新建立与盒子的连接时,当我丢失连接时运行的bash和sshd进程发生了什么?今天我反复失去连接,注意到比平常更多的bash和sshd进程。

如果有进程闲置,我是否需要杀死它们?我怎样才能确定哪个进程在我之前的会话中被放弃了?

谢谢你的回复!

Answers:


8

通常,进程将在断开连接时终止,但旧的SSH会话可能正在等待超时,或者由于竞争条件而可能在退出时挂起

您可能应该终止旧会话,尽管您不一定要这样做。ps aux在控制台上键入以列出进程,然后kill PID为每个挂起的ssh会话键入,其中PID是该会话的PID(进程ID)。旧的,挂起的会话应该具有比当前新会话更低的PID。

如果有一个长时间运行的进程,即使断开连接后您特别希望继续运行,也可以使用nohup为命令添加前缀:

nohup badblocks -nvs /dev/sda &

0

当ssh会话终止时,关闭的伪tty将被关闭并重置。通常,shell和与该tty关联的其他进程被终止,因为它们是创建它的进程的子进程。如果周围有进程,也许它们已经背景了?是的,他们可能应该被杀死 - 清洁是在敬虔旁边。他们确实占用了一些资源 - 通常不多,但它可能会在一段时间后累积起来。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.