在bash脚本中,如何从使用eval命令时执行的程序获取PID?

在bash脚本中,如何从使用eval命令时执行的程序获取PID?,第1张

概述在bash脚本中,如何从使用eval命令时执行的程序获取PID?

我有一个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?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1159392.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存