सिस्टम बूट होने पर अपने आप चलने या रोकने के लिए आप एक स्क्रिप्ट या ऐप कैसे बनाते हैं, एक उपयोगकर्ता एक विशेष समय पर, जब एक डिस्क संलग्न होता है, आदि?
सिस्टम बूट होने पर अपने आप चलने या रोकने के लिए आप एक स्क्रिप्ट या ऐप कैसे बनाते हैं, एक उपयोगकर्ता एक विशेष समय पर, जब एक डिस्क संलग्न होता है, आदि?
जवाबों:
यदि आप चाहते हैं कि जब कोई उपयोगकर्ता लॉग इन करे, तो सबसे आसान तरीका 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
, आदि
लिंगोन अभी भी काम करता है। मैंने "अनुसूचित कार्य" बनाने के लिए पिछले सप्ताह इसका उपयोग किया था। मैंने इसे डाउनलोड करने के बाद नवीनतम संस्करण प्राप्त करने के लिए इसके ऑटो-अपडेटर का उपयोग किया था लेकिन यह ठीक काम करता है।
यदि सिस्टम के बूट होने पर इसे चलाने के लिए केवल आवश्यक है, तो सिस्टम प्राथमिकताओं में अपने खाता वरीयता फलक के लॉगिन आइटम टैब का उपयोग करें ।
यदि यह एक स्क्रिप्ट है, तो इसे एप्लिकेशन के रूप में सहेजने के लिए AppleScript एडिटर का उपयोग करें। यदि यह AppleScript स्क्रिप्ट नहीं है, तो आप स्क्रिप्ट को चलाने के लिए AppleScript का उपयोग इस तरह कर सकते हैं:
do shell script "your script here"
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
?
एक निर्दिष्ट समय पर एक ऐप चलाना आईक्काल में आसानी से किया जा सकता है, जैसा कि मैंने अभी एक और मंच के लिए धन्यवाद पाया है!
एक बात का ध्यान रखें कि यदि आपके पास iCloud पर कई मैक साझा करने का सामान है, तो यह ईवेंट उन ऐप्स पर भी चलेगा, जिन्हें आप चाहते हैं या नहीं कर सकते हैं। केवल एक मैक पर ऐसा करने के लिए, आपको एक 'ऑन माई मैक' कैलेंडर में ईवेंट बनाना होगा, जिसे आप निम्न प्रकार से कर सकते हैं ...
मैंने केवल इसे खुद ही पाया है, और दोनों युक्तियों से सुखद आश्चर्यचकित था, इसलिए सोचा कि मैं उन्हें यहां साझा करूंगा।
मुझे इन मददगार लोगों की जानकारी यहाँ से मिली ... तो आप लोगों का धन्यवाद! ...
http://osxdaily.com/2013/04/15/launch-file-app-scheduled-date-mac-os-x/