在Ubuntu中使用shell杀死后台进程

时间:2016-06-28 14:51:41

标签: bash shell ubuntu background

我尝试在Ubuntu中使用shell杀死一个进程,该进程使用like:

创建
#!/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

我知道如何使用manuel杀死应用程序,如:

ps -ax -u | grep appName

然后找到processid,

kill [processId]

有可能吗?是的,怎么样? 谢谢。

1 个答案:

答案 0 :(得分:0)

通过简单的搜索,您可以在此网站上找到如何在此处 的示例。 (或Google it:&#34; bash shell wait。&#34;)当您执行任何后台进程时,您可以获得新子进程的PID(&#34;进程ID&#34;)。你可以等孩子完成。你也可以杀了它。

显示执行jobs的Shell命令也提供了PID。

然而,请记住&#34;杀死一个孩子&#34; ...虽然在这种情况下它不会让你进入监狱 ; - ) ......&#34;通常不是一件好事。 &#34;你不知道孩子在做什么,做了什么或者没有做什么,当你把那颗子弹穿过它的大脑时,什么数据现在可能处于不一致的状态。不可能可靠地调试任何依赖谋杀其子女的过程。

您可以&#34;发送不同的信号,&#34;例如SIGHUPSIGUSR1,使用相同的kill命令对进程进行设计,并将子进程设计为正在侦听该信号,以表明它必须关闭本身快速下降。&#34;总是给一个过程一个信号,以便按顺序放置自己的事务,然后离开这个致命的线圈&#39; ...&#34;