我正试着写一个运行java程序"Loop“的脚本,然后在5秒后终止这个java程序,然而,当我使用"pkill”选项时,它并没有终止程序,我很抱歉问了这么一个基本的问题,我已经在互联网上找过了,但我找不到一个解决方案。下面是我的代码:
#!/bin/bash
javac Loop.java
java Loop
sleep 5
pkill -n java当我从终端运行命令pkill -n java,而不是在脚本中运行时,它会像我预期的那样运行,为什么会这样?
发布于 2014-12-23 22:53:32
您的bash脚本正在等待java完成,因此您需要将其作为后台进程运行,该进程将启动您的循环代码,然后立即返回,允许脚本的其余部分运行:
java Loop &更多信息:http://tldp.org/LDP/abs/html/x9644.html
发布于 2014-12-23 22:54:37
因为您在前台运行java Loop,所以直到退出sleep 5时才会执行下一行JVM (如果Loop实际上是一个无限循环,这可能永远不会执行)。
所以你需要在后台启动:
java Loop &此外,为了终止特定的后台作业(而不是终止最新的JVM),您可以这样做:
kill $!https://stackoverflow.com/questions/27622653
复制相似问题