tl; डॉ: उपयोग OSX की मूल प्रक्रिया लांचर और प्रबंधक, launchd।
ऐसा करने के लिए, एक launchctlडेमॉन बनाओ । स्क्रिप्ट के सभी पहलुओं पर आपका पूरा नियंत्रण होगा। आप एक बार दौड़ सकते हैं या डेमॉन के रूप में जीवित रह सकते हैं। ज्यादातर मामलों में, यह जाने का तरीका है।
- यहां Apple Dev डॉक्स में दिए निर्देशों के
.plist अनुसार एक फाइल बनाएं या नीचे अधिक विवरण दें।
- रखना
~/Library/LaunchAgents
- लॉग इन करें (या मैन्युअल रूप से चलाएं
launchctl load [filename.plist])
अधिक के लिए launchd, विकिपीडिया लेख काफी अच्छा है और अन्य पुराने सिस्टम पर सिस्टम और इसके लाभों का वर्णन करता है।
यहां लॉगिन पर स्क्रिप्ट चलाने के लिए विशिष्ट प्लिस्ट फ़ाइल है ।
OSX El Capitan और नए ( जोस मेसियस जूनियर के लिए क्रेडिट ) के लिए 2017/09/25 अपडेट किया गया :
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.user.loginscript</string>
<key>ProgramArguments</key>
<array><string>/path/to/executable/script.sh</string></array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
<string>अपने इच्छित कमांड के साथ प्रोग्राम कुंजी के बाद बदलें (ध्यान दें कि उस कमांड द्वारा संदर्भित किसी भी स्क्रिप्ट को निष्पादन योग्य होना चाहिए: chmod a+x /path/to/executable/script.shयह सुनिश्चित करने के लिए कि यह उनके उपयोगकर्ताओं के लिए है)।
के रूप रक्षित करें ~/Library/LaunchAgents/com.user.loginscript.plist
चलाने launchctl load ~/Library/LaunchAgents/com.user.loginscript.plistऔर लॉग आउट करने के लिए / परीक्षण करने के लिए (या सीधे परीक्षण करने के लिए, भागो launchctl start com.user.loginscript)
/var/log/system.logत्रुटि संदेशों के लिए पूंछ ।
कुंजी यह है कि यह एक उपयोगकर्ता-विशिष्ट लॉन्च प्रविष्टि है, इसलिए इसे दिए गए उपयोगकर्ता के लिए लॉगिन पर चलाया जाएगा। सिस्टम-विशिष्ट लॉन्च डेमन (इन में रखा गया /Library/LaunchDaemons) बूट पर चलाया जाता है।
यदि आप सभी उपयोगकर्ताओं के लिए लॉगिन पर एक स्क्रिप्ट चलाना चाहते हैं, तो मेरा मानना है कि LoginHook आपका एकमात्र विकल्प है, और शायद यही कारण है कि यह मौजूद है।