2016-06-28 26 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命令,并设计子进程为表明它必须“闭嘴被监听该信号本身下来,很快。“总是给一个进程的信号“把自己的诸事安排妥当,然后离开‘这尘世的’......”