ProcessHandle इंटरफेस
ProcessHandle इंटरफेस Java 9 में पेश किया गया। यह हमें उन क्रियाओं को करने और उससे संबंधित प्रोसेस की स्थिति की जांच करने की अनुमति देता है। यह इंटरफेस प्रोसेस का नेटिव प्रोसेस ID (pid), प्रारंभ समय, संचित CPU समय, आर्गुमेंट्स, कमांड, उपयोगकर्ता, पैरेंट प्रोसेस, और वंशज प्रदान करता है।
ProcessHandle द्वारा समर्थित क्रियाएं
- प्रोसेस के बारे में आगे की जानकारी रखने वाला ProcessHandle.Info लौटाता है
- प्रोसेस का PID
- यह जीवित है या नहीं
- प्रोसेस के डायरेक्ट चिल्ड्रन का स्नैपशॉट प्राप्त करें
- प्रोसेस के सभी वंशजों का स्नैपशॉट प्राप्त करें
- वर्तमान में चल रहे सभी प्रोसेसेज का स्नैपशॉट प्राप्त करें
- प्रोसेस को नष्ट करने की अनुमति दें
- जब प्रोसेस समाप्त होता है तो CompletableFuture के साथ ProcessHandle लौटाता है
ProcessHandle.Info
ProcessHandle.Info प्रोसेस के स्नैपशॉट से जानकारी रखता है जिसमें शामिल हैं:
- प्रोसेस की कमांड
- प्रोसेस के आर्गुमेंट्स
- प्रोसेस की कमांड-लाइन
- प्रोसेस का प्रारंभ समय
- प्रोसेस द्वारा उपयोग किया गया CPU समय
- प्रोसेस का उपयोगकर्ता
उदाहरण: वर्तमान प्रोसेस PID और लाइवनेस जांचना
import java.util.Optional;
public class ProcessHandleTest {
public static void main(String args[]) {
long pid = ProcessHandle.current().pid();
ProcessHandle currentProcess = ProcessHandle.current();
System.out.println("PID: " + currentProcess.pid());
Optional<ProcessHandle> processHandle = ProcessHandle.of(pid);
boolean isAlive = processHandle.isPresent() && processHandle.get().isAlive();
System.out.println(isAlive);
}
}
आउटपुट
PID: 6484
true
ProcessHandle देशी प्रोसेस प्रबंधन के लिए एक शक्तिशाली, आधुनिक API प्रदान करता है।