मेरी समस्या:
मैं एक बैश स्क्रिप्ट लिख रहा हूं और इसमें मैं यह जांचना चाहूंगा कि क्या कोई दी गई सेवा चल रही है।
मुझे पता है कि यह मैन्युअल रूप से कैसे करना है, के साथ $ service [service_name] status
।
लेकिन (विशेष रूप से सिस्टमड के कदम के बाद से) जो पाठ के एक पूरे गुच्छा को प्रिंट करता है जो पार्स करने के लिए थोड़ा गड़बड़ है। मैंने मान लिया कि साधारण आउटपुट वाली स्क्रिप्ट के लिए एक कमांड बनाई गई है या एक रिटर्न वैल्यू जिसकी मैं जांच कर सकता हूं।
लेकिन केवल Googling के चारों ओर "ओह, बस ps aux | grep -v grep | grep [service_name]
" परिणाम का एक टन उपज होता है। यह सबसे अच्छा अभ्यास नहीं हो सकता है, क्या यह है? क्या होगा अगर उस कमांड का एक और उदाहरण चल रहा है, लेकिन SysV init स्क्रिप्ट द्वारा शुरू नहीं किया गया है?
या मैं बस चुप हो जाऊं और अपने हाथों को थोड़े-से pgrep से गंदा कर दूं?
inactive
याactivating
और दोनोंsystemctl status
औरsystemctl is-active
(के रूप में बाहर निकलने 3. साथ systemd-241 वर्कअराउंड):systemctl show service | grep -qx ActiveStatus=activating