我刚刚启动了长时间运行的进程。我创建了 ssh 并长时间进入 ssh 会话,创建了多个屏幕,运行了所有程序,然后使用 (ctr + A + D) 分离。但是当我恢复 (screen + r) 并尝试查看我的输出时,服务器变得很慢。所有进程都在运行,但还没有一个完成。最后我决定暂停一些屏幕并运行其中的几个,以便尽快完成程序的运行。
是否可以暂停一些正在运行的进程,我需要帮助。
答案1
您可以向进程发送信号来停止(暂停)它们:
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”在前台重新启动它们。
希望有所帮助。