暂停SSH会话


0

我有很长的运行过程,我刚开始。我创建ssh并长入ssh会话并创建多个屏幕并运行所有程序并使用(ctr + A + D)分离。但是当我恢复(屏幕+ r)并尝试查看我的输出时,服务器变得很慢。所有过程都在运行,但尚未完成任何一个过程。我最终决定暂停一些屏幕并运行其中一些屏幕,以便尽快完成程序运行。

如果可以暂停一些正在运行的进程,我需要帮助。

linux  unix  ssh 

2
Loko

nohup是一种流行的方式来忽略SIGHUP远程终端关闭时你的进程。 SIGSTOP/ SIGCONT可用于暂停/恢复这些进程的活动。
Brian Cain

1
您可以尝试CTRL + Z. 这将暂停前台进程并返回到bash提示符。查看正在运行的进程列表jobs和继续fg。如果进程是CPU密集型的,那么运行比系统中的CPU数量更多的实例是没有意义的,对于内存和I / O等其他资源也是如此。
保罗·斯卡丁

Answers:


0

您可以向进程发送信号以停止(暂停)它们:

kill -SIGSTOP <PID>

以后继续这个过程:

kill -SIGCONT <PID>

来自信号手册页(man 7 signal):

   SIGCONT   19,18,25    Cont    Continue if stopped
   SIGSTOP   17,19,23    Stop    Stop process

这当然只有在您运行的程序正确处理这些信号时才有效。另一种方法是在启动进程的shell上按CTRL-Z。这将阻止他们。使用'bg',你可以在后台再次启动它们,或者你可以使用'fg'在前台再次启动它们。

希望有所帮助。

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.