gpt4 book ai didi

java - 如何确定在 Linux 上使用 Java 还是 JRuby 是否正在运行不同的进程 ID?

转载 作者:数据小太阳 更新时间:2023-10-29 08:14:42 24 4
gpt4 key购买 nike

我需要查看给定的进程 ID 是否正在运行,并且它必须在 Java 或 JRuby(最好是 Ruby 解决方案)中运行。它可以依赖于 Linux 系统(特别是 Debian 和/或 Ubuntu)。

我已经有了我要找的 PID,只需要看看它当前是否正在运行。


更新:

感谢大家的回复!我很感激,但它不是我正在寻找的东西......我希望在标准 Ruby 库(或 Java,但最好是 Ruby)中找到一些东西......如果不存在这样的库调用,我可能会坚持使用我已有的 procfs 解决方案。

最佳答案

Darron's comment是正确的,但与其调用“kill”二进制文件,不如使用带有 0 信号的 Ruby 的 Process.kill 方法:

#!/usr/bin/ruby 

pid = ARGV[0].to_i

begin
Process.kill(0, pid)
puts "#{pid} is running"
rescue Errno::EPERM # changed uid
puts "No permission to query #{pid}!";
rescue Errno::ESRCH
puts "#{pid} is NOT running."; # or zombied
rescue
puts "Unable to determine status for #{pid} : #{$!}"
end

[user@host user]$ ./is_running.rb 14302
14302 is running

[user@host user]$ ./is_running.rb 99999
99999 is NOT running.

[user@host user]$ ./is_running.rb 37
No permission to query 37!

[user@host user]$ sudo ./is_running.rb 37
37 is running

引用:http://pleac.sourceforge.net/pleac_ruby/processmanagementetc.html

关于java - 如何确定在 Linux 上使用 Java 还是 JRuby 是否正在运行不同的进程 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/141162/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com