इस प्रोजेक्ट के बारे में

witr एक सिंगल स्टैटिक बाइनरी है जो Linux, macOS, Windows और FreeBSD के लिए उपलब्ध है और एक ही प्रश्न का उत्तर देती है: यह क्यों चल रहा है? किसी प्रोसेस नाम, PID, पोर्ट, कंटेनर या खुली फ़ाइल को देखकर यह उन सुपरवाइज़र, सेवाओं, शेल और कंटेनरों की कारण-श्रृंखला बनाती है जो इस चीज़ के अभी मौजूद होने के लिए ज़िम्मेदार हैं। मूल विचार: हर चीज़ को एक प्रोसेस प्रश्न के रूप में माना जाता है। पोर्ट, सेवाएँ, कंटेनर और कमांड सभी PID पर मैप होते हैं, और एक बार PID पहचान लेने पर witr बताता है कि क्या चल रहा है, यह कैसे शुरू हुआ, इसे क्या चलाए रखता है, और यह किस संदर्भ से संबंधित है। यह ps, top, lsof, ss, systemctl या docker ps जैसे टूल से अलग है, जो स्थिति और मेटाडेटा दिखाते हैं लेकिन आउटपुट को मैन्युअल रूप से जोड़ने का काम उपयोगकर्ता पर छोड़ देते हैं। उपयोग मोड: - मानक आउटपुट लक्ष्य, प्रोसेस, उपयोगकर्ता, कमांड, प्रारंभ समय, पूर्वज श्रृंखला (उदाहरण के लिए systemd से pm2 से node), स्रोत, कार्यशील निर्देशिका, git रेपो और सॉकेट दिखाता है। - --short केवल पूर्वज श्रृंखला प्रिंट करता है; --tree पूर्वज श्रृंखला को ट्री के रूप में दिखाता है जिसमें 10 तक चाइल्ड प्रोसेस शामिल होते हैं। - --json मशीन-पठनीय परिणाम देता है; --env पर्यावरण चर दिखाता है; --verbose विस्तारित प्रोसेस जानकारी जोड़ता है; --warnings केवल चेतावनियाँ दिखाता है। - स्थितीय आर्गुमेंट को प्रोसेस या सेवा नाम के रूप में माना जाता है, डिफ़ॉल्ट रूप से सबस्ट्रिंग मिलान के साथ और --exact से सटीक नाम के लिए। कई मिलानों को PID के साथ सूचीबद्ध किया जाता है और --pid के साथ दोबारा चलाने का सुझाव दिया जाता है। - --pid, --port, --file और --container दोहराए जा सकते हैं और एक-दूसरे के साथ और नाम आर्गुमेंट के साथ मिलाए जा सकते हैं; परिणाम दिए गए क्रम में दिखाई देते हैं, लेबल किए गए विभाजकों से अलग किए जाते हैं। - --container Docker, Podman, nerdctl, K8s/crictl, Incus, LXC, LXD और FreeBSD jails में खोजता है, कंटेनर नाम, इमेज, कमांड और compose प्रोजेक्ट/सेवा लेबल से मिलान करता है। इंटरैक्टिव TUI: बिना आर्गुमेंट या -i के साथ witr चलाने पर चार टैब वाला टर्मिनल डैशबोर्ड खुलता है। Processes एक लाइव सॉर्ट करने योग्य, फ़िल्टर करने योग्य सूची और पूर्वज साइड पैनल दिखाता है। Ports सुनने वाले या सभी पोर्ट को उनके स्वामी प्रोसेस के साथ सूचीबद्ध करता है, जिसे a से टॉगल किया जाता है। Containers समर्थित रनटाइम्स में चल रहे कंटेनरों को एकत्र करता है और माउंट, नेटवर्क और compose मेटाडेटा के लिए विस्तृत दृश्य देता है। Locks सिस्टम-व्यापी फ़ाइल लॉक (Linux पर POSIX/FLOCK, macOS/FreeBSD पर lsof-आधारित) दिखाता है और सभी रोचक खुले फ़ाइल डिस्क्रिप्टर को मिला सकता है। TUI Unix पर kill, terminate, pause, resume और renice जैसी प्रोसेस क्रियाएँ, माउस नेविगेशन, अनुकूली लाइट/डार्क थीमिंग और 3 सेकंड से शुरू होने वाली अनुकूली गति पर ऑटो-रिफ्रेश का समर्थन करता है। इंस्टॉलेशन व्यापक है: Unix और Windows के लिए इंस्टॉल स्क्रिप्ट, साथ ही APT, Homebrew, MacPorts, Conda, AUR, Winget, npm, FreeBSD Ports, Chocolatey, Scoop, AOSC OS, GNU Guix, Uniget, Aqua, Brioche और mise के माध्यम से पैकेज, deb/rpm/apk आर्टिफैक्ट और स्रोत से go install के साथ। Bash, Zsh, Fish और PowerShell के लिए शेल कम्प्लीशन प्रदान किए जाते हैं, और एक मैन पेज शामिल है। बिना इंस्टॉल किए वर्कफ़्लो को आज़माने के लिए ब्राउज़र-आधारित सिम्युलेटेड ट्यूटोरियल और सैंडबॉक्स उपलब्ध है।