如何在Java或者Linux上的JRuby中找到我的PID?
时间:2020-03-06 14:46:09 来源:igfitidea点击:
我需要找到Linux平台上当前正在运行的进程的PID(它可以是与系统有关的解决方案)。 Java不支持获取进程ID,并且JRuby当前在Ruby方法Process.pid中存在一个错误。
还有另一种获取PID的方法吗?
解决方案
如果安装了procfs,则可以通过/ proc / self符号链接找到进程ID,该链接指向一个名为pid的目录(这里还有文件以及其他相关信息,包括PID,但该目录为在这种情况下,我们需要)。
因此,使用Java,我们可以执行以下操作:
String pid = new File("/proc/self").getCanonicalFile().getName();
在JRuby中,我们可以使用相同的解决方案:
pid = java.io.File.new("/proc/self").canonical_file.name
特别感谢免费节点上的#stackoverflow频道帮助我解决了这个问题! (特别是Jerub,gregh和Topdeck)
仅在使用Sun JVM的Linux中进行了测试。可能无法与其他JMX实现一起使用。
String pid = ManagementFactory.getRuntimeMXBean().getName().split("@")[0];