我剛剛啟動了長時間運行的流程。我創建 ssh 並長入 ssh 會話,並創建多個螢幕並運行所有程式並使用(ctr + A + D)分離。但是當我恢復(屏幕+ 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”在前台再次啟動它們。
希望有幫助。