You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by jb...@apache.org on 2020/08/28 06:26:52 UTC
[karaf] branch karaf-4.2.x updated: [KARAF-6764] Check for process
status zombie in isRunning()
This is an automated email from the ASF dual-hosted git repository.
jbonofre pushed a commit to branch karaf-4.2.x
in repository https://gitbox.apache.org/repos/asf/karaf.git
The following commit(s) were added to refs/heads/karaf-4.2.x by this push:
new 4739ae8 [KARAF-6764] Check for process status zombie in isRunning()
4739ae8 is described below
commit 4739ae800f23d7941fd2079bbca410f91d30bf59
Author: Mike Hummel <mi...@mhus.de>
AuthorDate: Sat Jun 13 22:43:09 2020 +0200
[KARAF-6764] Check for process status zombie in isRunning()
(cherry picked from commit 10d991bbf28704fb50b25b04a918e599459fd5ef)
---
util/src/main/java/org/apache/karaf/jpm/impl/ProcessImpl.java | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/util/src/main/java/org/apache/karaf/jpm/impl/ProcessImpl.java b/util/src/main/java/org/apache/karaf/jpm/impl/ProcessImpl.java
index c500cb9..6d8801b 100644
--- a/util/src/main/java/org/apache/karaf/jpm/impl/ProcessImpl.java
+++ b/util/src/main/java/org/apache/karaf/jpm/impl/ProcessImpl.java
@@ -60,11 +60,11 @@ public class ProcessImpl implements Process {
return ret == 0;
} else {
try {
- java.lang.Process process = new java.lang.ProcessBuilder("ps", "-p", Integer.toString(pid)).start();
+ java.lang.Process process = new java.lang.ProcessBuilder("ps", "-o", "stat", "-p", Integer.toString(pid)).start();
try (BufferedReader r = new BufferedReader(new InputStreamReader(process.getInputStream()))) {
r.readLine(); // skip headers
String s = r.readLine();
- boolean running = s != null && s.length() > 0;
+ boolean running = s != null && s.length() > 0 && s.indexOf("Z") < 0;
process.waitFor();
return running;
}