मैं प्लास्ट को लोड और अनलोड करने के लिए गैर-"लीगेसी" लॉन्चर कमांड का उपयोग कैसे करूं?


14

मेरे पास कुछ प्लिस्ट फाइलें हैं ~/Library/LaunchAgents

मैं ख़ुशी से उपयोग कर रहा हूँ launchctl load -wऔर launchctl unload -wइनको चालू और बंद करना है। हालाँकि, मुझे लगता है कि अब loadऔर unloadमैन पेज के "विरासत" खंड में फिर से शामिल किया गया है। चलो उनमें से एक को बुलाओ com.example.service.plist

हालांकि, जब मैं के माध्यम से इन plists के साथ बातचीत करने की कोशिश launchctl enable "gui/$(id -u)/com.example.service"और launchctl disable "gui/$(id -u)/com.example.service"अन्य launchd आदेशों लगते रिपोर्ट सफलता के लिए - उदाहरण के लिए, launchctl print "gui/$(id -u)"पूरी तरह से पता चलता है मुझे विकलांग झंडे कि राज्य मैं निर्धारित किया है कि के अनुरूप - सेवाएं वास्तव में शुरू नहीं करते हैं और स्टॉप या सुनें और उनके बंदरगाहों पर अमल करें।

क्या कोई ऐसा कदम है जो मुझे याद आ रहा है? क्षण के लिए मैं के साथ चिपके हुए हूँ loadऔर unloadलेकिन मैं इससे पहले कि एप्पल अंततः वर्ष / बुरा रास्ते पर दरवाजा ज़ोर से बंद इस सामग्री के साथ बातचीत के गैर पदावनत तरह से जानकारी चाहते हैं ...


विरासत का मतलब है कि एक बदलाव पीछे है - आप अभी भी 10.11 और उससे कम पर अपने दिल की सामग्री को लोड और अनलोड कर सकते हैं। मेरे अनुमान एप्पल इस साल और प्रवास के लिए एक समय WWDC पर दस्तावेज़ होगा ...
bmike

1
मुझे लगता है कि वहाँ सिर्फ इस के लिए एक जवाब अभी तक नहीं हो सकता है, लेकिन यह सुनिश्चित दिखता है की तरह enableऔर disableबदलने के लिए करना है loadऔर unload। मैं सिर्फ उन्हें काम नहीं कर सकता जैसा मैं उम्मीद करता हूं।
ग्लिफ़

1
क्या आपने निम्नलिखित के launchctl enableसाथ प्रयास किया है launchctl kickstart?

मैंने नहीं किया है, लेकिन launchctl kickstartप्रश्न में नौकरी के लिए सिर्फ एक सक्रियण जारी करने वाला नहीं है ? मैं विशेष रूप से लॉन्चड का उपयोग कर रहा हूं क्योंकि मैं विशुद्ध रूप से ऑन-डिमांड सक्रियण चाहता हूं।
ग्लिफ़

2
ऐसा लगता है कि यह मदद कर सकता है: babodee.wordpress.com/2016/04/09/launchctl-2-0-syntax
TJ

जवाबों:


6

मैंने ट्विटर उपयोगकर्ता @launchderp से पूछा :

@launchderp क्या launchctl loadअभी भी उपयोग करने के लिए सुरक्षित नहीं हैं और कम से कम 10.12 तक या इसके बाद जो भी आता है?

सीएफ मैं प्लास्ट को लोड और अनलोड करने के लिए गैर-"लीगेसी" लॉन्चर कमांड का उपयोग कैसे करूं?

और @launchderp ने जवाब दिया

@tjluoma हाँ, वे अभी भी सुरक्षित हैं। कई वर्षों की निर्भरता उन्हें तोड़ने के लिए।

हालांकि यह एक आधिकारिक ऐप्पल स्टेटमेंट की तरह प्रतीत नहीं हो सकता है, मेरा मानना ​​है कि यह व्यक्ति ऐसा व्यक्ति है जो सक्रिय रूप से launchdऐप्पल के लिए काम कर रहा है , और जो वे कहते हैं उस पर भरोसा करें। YMMV।

कहानी का नैतिक: यदि लोड / अनलोड आपके लिए काम कर रहा है, तो उनका उपयोग करते रहें :-)


2
"स्वीकृत" के रूप में चिह्नित नहीं किया जा रहा है, क्योंकि यह प्रश्न के बारे में काफी पता नहीं लगाता है enableऔर disableउत्थानित है क्योंकि मैं अभी भी जानकारी की सराहना करता हूं :)।
ग्लिफ़

1

टीजे लुओमा द्वारा संदर्भित लेख बहुत मददगार है। लॉन्च डेमॉन के लिए कदम:

  1. /Library/LaunchDaemons/हमेशा की तरह अपनी फाइल को सेव करें । मान लें कि फ़ाइल है com.example.mysrv.plist, और प्लिस्ट में लेबल है com.example.mysrv
  2. sudo launchctl bootstrap system /Library/LaunchDaemons/com.example.mysrv.plist। ध्यान दें कि मार्ग सापेक्ष (से $PWD) या निरपेक्ष हो सकता है।
  3. के साथ सेवा की जाँच करें sudo launchctl print system/com.example.mysrv। इसे "रनिंग" कहना चाहिए।

लॉन्च एजेंट समान होने चाहिए। कैविएट: मुझे इस बारे में कोई जानकारी नहीं है कि किसी सर्विस को बिना अनलोड किए कैसे रोका जा सकता है bootout

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.