首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pkill -n java可以在控制台上运行,但不能在脚本中运行

pkill -n java可以在控制台上运行,但不能在脚本中运行
EN

Stack Overflow用户
提问于 2014-12-23 22:47:57
回答 2查看 357关注 0票数 0

我正试着写一个运行java程序"Loop“的脚本,然后在5秒后终止这个java程序,然而,当我使用"pkill”选项时,它并没有终止程序,我很抱歉问了这么一个基本的问题,我已经在互联网上找过了,但我找不到一个解决方案。下面是我的代码:

代码语言:javascript
复制
#!/bin/bash
javac Loop.java
java Loop
sleep 5
pkill -n java

当我从终端运行命令pkill -n java,而不是在脚本中运行时,它会像我预期的那样运行,为什么会这样?

EN

回答 2

Stack Overflow用户

发布于 2014-12-23 22:53:32

您的bash脚本正在等待java完成,因此您需要将其作为后台进程运行,该进程将启动您的循环代码,然后立即返回,允许脚本的其余部分运行:

代码语言:javascript
复制
java Loop &

更多信息:http://tldp.org/LDP/abs/html/x9644.html

票数 2
EN

Stack Overflow用户

发布于 2014-12-23 22:54:37

因为您在前台运行java Loop,所以直到退出sleep 5时才会执行下一行JVM (如果Loop实际上是一个无限循环,这可能永远不会执行)。

所以你需要在后台启动:

代码语言:javascript
复制
java Loop &

此外,为了终止特定的后台作业(而不是终止最新的JVM),您可以这样做:

代码语言:javascript
复制
kill $!
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27622653

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档