मैं बूट / लॉगिन / कुछ अन्य समय में किसी एप्लिकेशन को स्वचालित रूप से कैसे चला / रोक / हटा सकता हूं?


42

सिस्टम बूट होने पर अपने आप चलने या रोकने के लिए आप एक स्क्रिप्ट या ऐप कैसे बनाते हैं, एक उपयोगकर्ता एक विशेष समय पर, जब एक डिस्क संलग्न होता है, आदि?


3
लिंगोन अधिक उपयोगकर्ता के अनुकूल लॉन्च के लिए .plist फाइलें बनाने के लिए सिर्फ एक ऐप है। इसके अलावा किसी ने एक वेब आधारित लॉन्चड प्लिस्ट
चीलियन

बू! plist.spotmac.de चला गया लगता है। :-(
docwhat

जवाबों:


44

गुई विधि

यदि आप चाहते हैं कि जब कोई उपयोगकर्ता लॉग इन करे, तो सबसे आसान तरीका GUI का उपयोग करना हो। आप ऐसा कर सकते हैं

  • System Prefs > Accounts > Login Itemsस्क्रीन पर जाएं , और वहां आइटम जोड़ें
    • +प्रतीक पर क्लिक करना
    • .appफलक पर खींचना और छोड़ना
  • गोदी में, ऐप के लिए संदर्भ मेनू लाएं, चुनें Options, फिर चुनेंOpen at Login

लॉन्च विधि

यदि आप किसी ऐसी चीज़ को लॉन्च करना चाहते हैं जो कि नहीं है .app, या आप इसे लॉन्च करने पर अधिक नियंत्रण रखना चाहते हैं, जैसे:

  • एक निश्चित समय पर या एक निर्दिष्ट अंतराल पर
  • यदि यह क्रैश होता है तो लगातार पुन: लॉन्च हो रहा है
  • उपयोगकर्ता लॉगिन से संबंधित नहीं है
  • नेटवर्क पहुंच के एक समारोह के रूप में
  • केवल तभी चलाएं जब कोई अन्य प्रक्रिया चल रही हो
  • जब एक फ़ाइल एक फ़ोल्डर में जोड़ा जाता है
  • आदि।

तो आप उपयोग करना चाहते तकनीकी समाधान है कि launchd

एक launchdकॉन्फ़िगर फ़ाइल स्थापित करने का सबसे आसान तरीका मदद करने के लिए एक उपकरण का उपयोग करना है। सबसे लोकप्रिय विधि लिखने के समय लिंगोन (जिसमें सोर्सफॉर्ज से पुराना एक पुराना संस्करण उपलब्ध है), या PList वेबसाइट टूल है।

हाथ का कूटना

यदि आप लिंगोन या PList वेबसाइट का उपयोग नहीं करना चाहते हैं और केवल सिस्टम पर उपलब्ध कच्चे उपकरणों का उपयोग करना चाहते हैं, तो आप launchd plistहाथ से खुद लिख सकते हैं

सिस्टम बूट (उपयोगकर्ता लॉगिंग से स्वतंत्र) के बाद लगातार कुछ एप चलाने के लिए यहां मेरी लॉन्च स्क्रिप्ट है । यह / System / Library / LaunchAgents / में है और SomeApp.restart.plist कहलाता है। यदि यह उपयोगकर्ता लॉगिन के आधार पर चलाया जाता है, तो इसे ~ / Library / LaunchAgents / में संग्रहीत किया जा सकता है

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>RunAtLoad</key>  
        <true/>
        <key>KeepAlive</key>
        <true/>
        <key>Label</key>
        <string>SomeApp.restart</string>
        <key>ProgramArguments</key>
        <array>
                <string>/path/to/SomeApp.app/Contents/MacOS/SomeApp</string>
        </array>
        <key>StartCalendarInterval</key>
        <dict>
            <key>Hour</key>
            <integer>5</integer>
            <key>Minute</key>
            <integer>10</integer>
       </dict>
</dict>
</plist>

इसे एक बार के साथ लोड करें

launchctl load ~/Library/LaunchAgents/SomeApp.restart.plist
  • RunAtLoadविकल्प आवेदन पहली बार launchctl इस चलाता है का शुभारंभ करेंगे।
  • KeepAliveविकल्प आवेदन फिर से शुभारंभ करेंगे अगर यह दुर्घटनाओं।
  • StartCalendarIntervalएक निश्चित समय पर यह चलेंगे। संभवतः यह पिछले दो के साथ पारस्परिक रूप से अनन्य है, लेकिन यह दिखाने के लिए शामिल है कि इसके साथ क्या किया जा सकता हैlaunchd
  • रिबूट के बाद लॉन्चर इसे चलाएगा।

वहाँ कई अतिरिक्त विकल्प Lingon के साथ प्रयोग करके या के लिए आदमी पृष्ठों को पढ़ने के द्वारा पाया जा सकता है कि कर रहे हैं launchctl, launchd.plist, plist, launchd.conf, आदि


धन्यवाद, वास्तव में उपयोगी है। आप launchctl load -w ...परिवर्तन को लगातार बनाने के लिए भी उपयोग कर सकते हैं । आपकी प्रतिक्रिया के आधार पर मैंने अपने OSX
पॉवरसुसर

8

लिंगोन अभी भी काम करता है। मैंने "अनुसूचित कार्य" बनाने के लिए पिछले सप्ताह इसका उपयोग किया था। मैंने इसे डाउनलोड करने के बाद नवीनतम संस्करण प्राप्त करने के लिए इसके ऑटो-अपडेटर का उपयोग किया था लेकिन यह ठीक काम करता है।


1
लिंगोन भी अब ऐप स्टोर पर है
user151019

1
लेकिन मुक्त, खुले स्रोत संस्करण को खोजने के लिए आपको इसे सोर्सफोर्ज से खोदने की आवश्यकता है। सबसे अंतिम व्यावसायिक संस्करण भी तेंदुए (10.5) पर काम नहीं करता है। लेकिन 2.1.1 करता है - sourceforge.net/projects/lingon/files/Lingon/2.1.1
nealmcb

7

यदि सिस्टम के बूट होने पर इसे चलाने के लिए केवल आवश्यक है, तो सिस्टम प्राथमिकताओं में अपने खाता वरीयता फलक के लॉगिन आइटम टैब का उपयोग करें

वैकल्पिक शब्द

यदि यह एक स्क्रिप्ट है, तो इसे एप्लिकेशन के रूप में सहेजने के लिए AppleScript एडिटर का उपयोग करें। यदि यह AppleScript स्क्रिप्ट नहीं है, तो आप स्क्रिप्ट को चलाने के लिए AppleScript का उपयोग इस तरह कर सकते हैं:

do shell script "your script here"


हुह? क्या अापको उस बारे में पूर्ण विशवास है ? यह आपके स्क्रीनशॉट के UI में कहता है "जब आप लॉग इन करते हैं तो ये आइटम अपने आप खुल जाएंगे" - क्या यह सिस्टम बूट से अलग नहीं है? इसके अलावा, आपका लिंक 404 पर लगता है।
ssc

5

Loginhooks मत भूलना।

हालाँकि, वे जड़ के रूप में चलते हैं, लेकिन आपको कुछ ऐसा उपयोग करके $ $ / .loginhook स्क्रिप्ट निष्पादित करने में सक्षम होना चाहिए:

#!/bin/sh

home=`eval echo ~$user`

if [ -x "$home/.loginhook" ]; then
    logger -t $0 "executing .loginhook of user $user"
    su - $user -c "$home/.loginhook"
fi

फिर ~ / .loginhook को जो भी कमांड्स आप जोड़ना चाहते हैं

इसके अलावा, हालांकि 'लॉन्चड' "मैक तरीका है" क्रॉस्टैब अभी भी एक पूरी तरह से व्यवहार्य विकल्प है, और एक्सएमएल लॉन्च फ़ाइलों की तुलना में हाथ से संपादित करना बहुत आसान है।

व्यक्तिगत रूप से, मैंने खुशी से लिंगोन के लिए $ 5 का भुगतान किया ।


तो कोड ब्लॉक में स्क्रिप्ट के रूप में सहेजा जाना चाहिए /path/to/script, और sudo defaults write com.apple.loginwindow LoginHook /path/to/script? और होम डायरेक्टरी में एक स्क्रिप्ट चलाने की बात यह है कि प्रत्येक उपयोगकर्ता के पास एक कस्टम (या नहीं) हो सकता है ~/.loginhook?
Lri

@ श्री - हाँ, ठीक है। खेद है कि स्पष्ट नहीं था। ब्लॉक कोड /usr/local/bin/loginhook.sh हो सकता है और, चूंकि यह रूट द्वारा चलाया जाता है, यह उपयोगकर्ता के लॉग इन करते समय $ HOME / .loginhook की तलाश करेगा और इसे उस उपयोगकर्ता के रूप में चलाएगा।
टीजे लुओमा

4

एक निर्दिष्ट समय पर एक ऐप चलाना आईक्काल में आसानी से किया जा सकता है, जैसा कि मैंने अभी एक और मंच के लिए धन्यवाद पाया है!

  1. जिस समय आप एप्लिकेशन को खोलना चाहते हैं, उसके लिए iCal में एक नई घटना बनाएं।
  2. 'अलर्ट' पर 'ओपन फाइल' चुनें - तो, ​​आप खोलने के लिए एक फाइल सेट कर सकते हैं, जो स्पष्ट रूप से इस फाइल प्रकार के लिए डिफ़ॉल्ट एप्लिकेशन भी खोल देगा।
  3. केवल एक ऐप खोलने के लिए, फ़ाइल के बजाय, 'iCal' ड्रॉपडाउन को 'अन्य ...' में बदलें और उस ऐप को चुनें जिसे आप चलाना चाहते हैं!

एक बात का ध्यान रखें कि यदि आपके पास iCloud पर कई मैक साझा करने का सामान है, तो यह ईवेंट उन ऐप्स पर भी चलेगा, जिन्हें आप चाहते हैं या नहीं कर सकते हैं। केवल एक मैक पर ऐसा करने के लिए, आपको एक 'ऑन माई मैक' कैलेंडर में ईवेंट बनाना होगा, जिसे आप निम्न प्रकार से कर सकते हैं ...

  1. कैलेंडर के नाम पर मँडरा और 'छिपाएँ' बटन पर क्लिक करके जो बाईं ओर दिखाई देगा, उसके सभी अन्य iCloud या साझा कैलेंडर बायीं ओर छिपाएँ।
  2. अब राइट क्लिक करें (या विकल्प क्लिक करें यदि आप एक पूर्ण क्रेटिन हैं और अभी भी महसूस नहीं किया है कि आपके पास एक से अधिक उंगली है और अपनी माउस प्राथमिकताएं बदल सकते हैं ताकि यह क्रेटिन की स्थिति के लिए अपने डिफ़ॉल्ट 'क्रेटिनस ईंट' की तुलना में थोड़ा अधिक उपयोगी हो। ) और 'नया कैलेंडर' चुनें।
  3. क्योंकि सभी साझा कैलेंडर छिपे हुए हैं, यह नया कैलेंडर 'ऑन माई मैक' के रूप में बनाया जाएगा और इस मैक के लिए स्थानीय होगा।

मैंने केवल इसे खुद ही पाया है, और दोनों युक्तियों से सुखद आश्चर्यचकित था, इसलिए सोचा कि मैं उन्हें यहां साझा करूंगा।

मुझे इन मददगार लोगों की जानकारी यहाँ से मिली ... तो आप लोगों का धन्यवाद! ...

http://osxdaily.com/2013/04/15/launch-file-app-scheduled-date-mac-os-x/

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