2014-12-30 101 views
0

我使用nohup來啓動多個後臺作業。然後,我可以使用job -l來顯示這些作業,並使用fg jobID將它們放在前面並停止它們。但是現在我已經退出會話,並且在我再次登錄並使用「job -l」顯示作業之後,如預期的那樣,它不顯示任何內容。現在,我想知道現在我可以停止這些後臺工作嗎?反正有類似的使用fg jobpid把它放在前面並殺死它嗎?提前致謝!退出shell後停止後臺作業

+0

使用ps命令獲取進程的pid並使用kill命令通過pid終止進程。 – SMA

+0

恐怕工作不好,因爲工作一個接一個地開始。 –

+0

你不需要把這個過程放在前面,就可以殺死它們。只要殺了他們,我沒有看到問題。使用'PS'來監控你的過程。可能是一個問題,就是你的NOHUP進程本身就是從不同的子進程開始的,但仍然是用PS和KILL無法解決的問題。 - 或者,如果您不使用NOHUP,則系統會很好地殺死您的進程,如果您終止Telnet shell。 – tvCa

回答

1

試試這個(注意,這可能是危險的):

ps -ef | grep 'some string int the process command' | grep -v grep | awk '{print $2}' | xargs kill -9 
+0

是的,它的工作:)我首先獲得父母的pid並殺死它。謝謝! –

0

您也可以使用類似TMUX或屏幕和分離的外殼,當你重新登錄再連接到殼運行正常的命令,就好像你一直在登錄一樣。