[Bash] تشغيل البرنامج النصي عند تسجيل الدخول إلى mac



Answers

tl؛ dr: استخدم launchd ومدير العمليات الأصلي في OSX ، launchd .

للقيام بذلك ، قم بعمل برنامج launchctl . سيكون لديك السيطرة الكاملة على جميع جوانب البرنامج النصي. يمكنك تشغيل مرة واحدة أو البقاء على قيد الحياة بمثابة خفي. في معظم الحالات ، هذا هو الطريق للذهاب.

  1. قم .plist ملف .plist وفقًا للإرشادات الموجودة في مستندات Apple Dev هنا أو لمزيد من التفاصيل أدناه.
  2. ضع في ~/Library/LaunchAgents
  3. تسجيل الدخول (أو التشغيل يدويًا عبر launchctl load [filename.plist] )

لمزيد من المعلومات حول launchd ، فإن مقالة wikipedia جيدة للغاية وتصف النظام ومميزاته على الأنظمة القديمة الأخرى.

إليك ملف plist محدد لتشغيل برنامج نصي عند تسجيل الدخول .

تم التحديث في 2017/09/25 لـ OSX El Capitan وأحدثها (اعتماد إلى José Messias Jr ):

<?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>

استبدل بعد مفتاح البرنامج بالأمر المطلوب.

حفظ كـ ~/Library/LaunchAgents/com.user.loginscript.plist

تشغيل launchctl load ~/Library/LaunchAgents/com.user.loginscript.plist وتسجيل الخروج / للاختبار (أو للاختبار مباشرة ، قم بتشغيل launchctl start com.user.loginscript )

/var/log/system.log لرسائل الخطأ.

المفتاح هو أن إدخال launchd خاص بالمستخدم ، بحيث يتم تشغيله عند تسجيل الدخول للمستخدم المحدد. يتم تشغيل /Library/LaunchDaemons إطلاق نظام معين (وضعت في /Library/LaunchDaemons ) على التمهيد.

إذا كنت تريد تشغيل نص برمجي عند تسجيل الدخول لجميع المستخدمين ، فأعتقد أن LoginHook هو خيارك الوحيد ، وربما يكون هذا هو سبب وجوده.

Question

أنا أتساءل إذا كان أي شخص قادر على مساعدتي في الحصول على ملف .sh لتشغيل عند تسجيل الدخول إلى حسابي على جهاز الكمبيوتر الخاص بي. أقوم بتشغيل Mac OS X 10.6.7.

لدي ملف "Example.sh" الذي أريد تشغيله عند تسجيل الدخول إلى الكمبيوتر. ليس لدي مشكلة في تشغيله عندما أقوم بتسجيل الدخول بالفعل ، ولكن أريد أن يتم تشغيله تلقائيًا.

يقول الناس لإضافته إلى ملف shell login ، لكن لا أعرف أين يوجد ذلك. بعض المساعدة من فضلك.




Links