我有一个bash脚本中的命令是类似于这样的:
eval "( java -classpath ./ $classname ${arguments[@]} $redirection_options $file )" & pID=$!
但是,如果我做了一个ps $pID它显示了主要的脚本过程,而不是java程序的过程。
当我省略eval时,它获得了正确的过程,但为了使一些复杂的参数正确工作,我需要使用它。
任何想法如何获得Java程序的PID在eval命令中执行时?
如何实现多个进程的pipe道?
如何从64位windowsregistry中读取启动项目?
Bash:从pID获得规范的path和参数
检查进程的状态,并重启进程如果没有响应/停止 – Python
为32位PCI设备编写windows 64位设备驱动程序
如何从Java运行一个shell脚本并在JVMclosures后继续运行?
如何在windows 8中使用cmd杀死进程名称的程序?
进程在linux中终止时文件描述符是否closures?
我怎样才能将更多的值写入pipe道并读取它们?
包含在.pdata部分中的结构
您的&符号是eval行的背景,导致(顶级)shell分叉子级,子shell eval字符串,并依次运行您的java程序作为顶级shell的孙子。 所以, $! 报告最近使用后台命令的子shell的pID。
而是移动您的评估内的背景:
eval "(java ...) &" pID=$!
只要括号没有变得足够复杂就可以成为一个子shell ,以上都是可行的。
总结以上是内存溢出为你收集整理的在bash脚本中,如何从使用eval命令时执行的程序获取PID?全部内容,希望文章能够帮你解决在bash脚本中,如何从使用eval命令时执行的程序获取PID?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)