2011-12-09 69 views
1

我已經嘗試過搜索這幾次,但我只是覺得我不知道正確的術語。通過bash腳本關閉一個正在運行的程序

我有一個應用程序在遠程服務器上的屏幕會話中運行。我定期開發和更新服務器,並使用Gi​​t repo來傳輸我的代碼。我想讓這個過程自動化。這是我想的腳本做:

  • 提交我的代碼,以我的本地機器存儲庫
  • SSH
  • Atttach推動本地資源庫服務器到服務器的屏幕,殺死當前在那裏運行的應用程序
    • 當我手動完成這件事時,我用ctrl-C殺死它。這似乎不是一個選擇。
  • 然後使用新代碼重新啓動它。

有關如何殺死應用程序的想法?或者總體上更好的方法?

回答

1

你的腳本需要獲取進程的PID並殺死它。您可以使用

ps -u <process-owning name> | grep <process name> 

獲取有關過程的信息。使用其他的東西來提取PID然後做一個殺死。

我使用類似的東西來通過Windows上的Cygwin殺死日常的Quake 3服務器。

+0

'pgrep $ PROCESS_NAME'返回PID。只要做一個'殺死$(pgrep $ PROCESS_NAME)'。或者,如果光禿禿的殺手功能不夠強大,可以使用'kill -9': – pepoluan

+0

我認爲kill bryp $ PROCESS_NAME是您在bash腳本中查找的內容。反引號表示執行該命令,將結果轉換爲字符串並繼續處理命令行。 – Almo

+0

反引號和$()在功能上是相同的。 – pepoluan

相關問題