দেখে মনে হচ্ছে অ্যাপল কোনও লগআউট হুক প্রতিস্থাপনে আগ্রহী নয়, কারণ তারা আমার বিষয়ে একটি সম্পর্কে জিজ্ঞাসাবাদ বন্ধ করে দিয়েছে।
তবে, যোসেমাইটের অন্যতম উন্নতি হ'ল এখন চালু করা সঠিকভাবে শেল স্ক্রিপ্টগুলিতে সিগন্যাল প্রেরণ করে। এর অর্থ হ'ল আপনি এখন এর মতো লগ-আউট টাস্কটি করতে পারেন:
এখানে একটি উদাহরণ লগআউট.শ:
#!/bin/sh
onLogout() {
echo 'Logging out' >> ~/Logs/logout.sh.log
exit
}
trap 'onLogout' SIGINT SIGHUP SIGTERM
while true; do
sleep 86400 &
wait $!
done
এটি কেবলমাত্র ঘুমাবে (অবিচ্ছিন্নভাবে, এটি অ্যাম্পারস্যান্ড ছাড়া সিঙ্ক্রোনালিভাবে কাজ করা মনে হয় না) যতক্ষণ না এটি আটকে থাকা সংকেতগুলির একটি গ্রহণ করে, কোন সময়ে এটি onLogout
কার্য সম্পাদন করবে।
আপনাকে যা করতে হবে তা হ'ল লঞ্চ RunAtLoad
এজেন্ট বা লঞ্চ ডেমন ব্যবহার করে স্ক্রিপ্টটি চালু করতে হবে এবং এটি লগ-আউট বা শাটডাউন চলবে, যদিও এটি মনে রাখা গুরুত্বপূর্ণ যে কাজগুলি কেবলমাত্র তার পরিবর্তে মারা যাওয়ার আগেই সম্পূর্ণ করার জন্য সীমিত পরিমাণে সময় থাকে mind , সুতরাং এটি দীর্ঘ সময় লাগে এমন কোনও কিছু চালানোর জন্য ব্যবহার করা উচিত নয়, বা নেটওয়ার্ক সংযোগের প্রয়োজন যা দেরি হতে পারে ইত্যাদি etc.
অবশ্যই এটি মাভারিক্স বা তার আগের কারওর কোনও উপকারে আসে না, তবে যোসামাইটের অধীনে এটি এখন প্রত্যাশার মতো কাজ করছে বলে মনে হয়; তাই আমি আসলে এটি প্রথম স্থানে করছিলাম, launchd
কেবল সংকেতগুলি সঠিকভাবে প্রেরণ করা হয়নি :)
দ্রষ্টব্য: এটির জন্য শেল স্ক্রিপ্টগুলি লঞ্চের মাধ্যমে সরাসরি সম্পাদন করা দরকার বলে মনে হয়, যেমন - এটির মাধ্যমে আবেদন করা উচিত নয় sh
। সুতরাং এটি যদি ~/Library/Scripts/foo.sh
আপনার প্রোগ্রামে স্থাপন করা হয় তবে আর্গুমেন্টগুলি দেখতে পারে:
<key>ProgramArguments</key>
<array>
<string>~/Library/Scripts/foo.sh</string>
<string>bar</string>
</array>
<key>EnableGlobbing</key>
<true/>
line 8: syntax error near unexpected token ;'
(অর্ধ-কোলনের আগে একটি সমাধি সহ)