यह ऑपरेटिंग सिस्टम का पता लगाने के लिए अधिक हो सकता है, लेकिन मुझे विशेष रूप से सिस्टम पर उपयोग में वर्तमान में इनिट सिस्टम की आवश्यकता है।
फेडोरा 15 और उबंटू अब सिस्टमड का उपयोग करते हैं, उबंटू अपस्टार्ट (15.04 तक लंबे समय तक डिफ़ॉल्ट) का उपयोग करता था, जबकि अन्य सिस्टम वी के रूपों का उपयोग करते हैं।
मेरे पास एक एप्लिकेशन है जिसे मैं क्रॉस-प्लेटफॉर्म डेमन बनने के लिए लिख रहा हूं। Init स्क्रिप्ट्स को गतिशील रूप से उत्पन्न किया जा रहा है जो उन मापदंडों के आधार पर होता है जिन्हें कॉन्फ़िगर किया जा सकता है।
मैं जो करना चाहता हूं, वह केवल उस विशेष init सिस्टम की स्क्रिप्ट उत्पन्न करता है जिसका वे उपयोग कर रहे हैं। इस तरह से स्थापित स्क्रिप्ट को रूट के रूप में मापदंडों के बिना यथोचित चलाया जा सकता है और डेमॉन को स्वचालित रूप से "इंस्टॉल" किया जा सकता है।
यह वही है जो मैं लेकर आया हूं:
- / बिन में systemd, upstart, आदि के लिए खोजें
- सिस्टमड, अपस्टार्ट आदि से तुलना करें
- उपयोगकर्ता से पूछें
ऐसा करने का सबसे अच्छा क्रॉस / प्लेटफॉर्म तरीका क्या होगा?
संबंधित की तरह, क्या मैं * nix के बहुमत पर होने के लिए बैश पर निर्भर हो सकता हूं या यह वितरण / ओएस पर निर्भर है?
लक्ष्य प्लेटफ़ॉर्म:
- मैक ओ एस
- लिनक्स (सभी वितरण)
- बीएसडी (सभी संस्करण)
- सोलारिस, मिनिक्स और अन्य * निक्स
ps -p 1 -o command(वर्तमान के लिए मार्ग प्रिंट init) प्राप्त कर सकते हैं । आर्क लिनक्स और फेडोरा (आईआईआरसी) पर, यह systemdबाइनरी के लिए एक सहानुभूति है (शायद सभी systemdप्रणालियों पर समान )। ऑन upstart, init --helpउपयोग जानकारी प्रिंट करेगा, और मेरे बॉक्स पर, upstartयह उल्लेख किया गया है कि यह कहां कहता है कि किसे ईमेल करना है। FreeBSD (sysV) पर, यह एक त्रुटि लौटाएगा। अन्य प्रणालियों पर समान सुराग हो सकते हैं, लेकिन इस सवाल को पूछने के बाद, मैंने उन्हें सभी प्लेटफार्मों के लिए बस बनाने और प्रत्येक के लिए अलग-अलग पैकेज बनाने का फैसला किया है।
sudo lsof -a -p 1 -d txtऔर भी सटीक परिणाम दे सकता है। psआप एक मनमाना नाम प्रिंट कर सकते हैं, जबकि lsofआपको वास्तविक निष्पादन योग्य मार्ग मिलेगा। (मेरा प्रश्न देखें unix.stackexchange.com/questions/102453/… )