2016-06-28 25 views
0

我試圖殺死一個過程,在Ubuntu的外殼,其與像創建:殺死後臺進程與殼牌在Ubuntu

#!/bin/bash 
<!--There should be codes which can kill my app(run in the background) 
echo "app will be run." 
java -jar path/to/my/jar/file.jar /arguman/of/myApp.txt & << 'ENDAPP' 
disown ENDAPP 

我知道如何殺死曼努埃爾一個應用程序是這樣的:

ps -ax -u | grep的APPNAME

,找到的ProcessID然後,

殺死[的ProcessID]

是否有可能呢?如果是的話,怎麼樣? 謝謝。

+0

我需要一個bash腳本來殺死這個應用程序。 –

回答

0

你可以通過一個簡單的搜索實際找到如何在這裏做的例子,。 (或Google它:「bash shell等待」)當你執行任何後臺進程時,你可以得到新的子進程的PID(「進程ID」)。你可以等待孩子完成。你也可以殺死它。

顯示您執行jobs的Shell命令也會提供它們的PID。

但是,請記住,「殺子」 ......雖然它不會在這種情況下;-)降落在你監獄 ...「一般是不會做的一件好事。 「你不知道孩子在做什麼,有什麼或者沒有完成什麼,當你把這顆子彈穿過它的大腦時,現在的數據可能處於不一致的狀態。無法可靠地調試任何依靠謀殺其子女的過程。

可以「送一不同信號,」如SIGHUPSIGUSR1,在過程中,使用相同的kill命令,並設計子進程爲表明它必須「閉嘴被監聽該信號本身下來,很快。「總是給一個進程的信號「把自己的諸事安排妥當,然後離開‘這塵世的’......」