আমি "ঘুম 3600; লগআউট" এর মতো কিছু চালাতে চাই, তবে লগআউট বাশ কমান্ড কেবলমাত্র বর্তমান টার্মিনালটি বন্ধ করে দেয়। আমি কীভাবে পুরো ম্যাক ওএস এক্স সেশনটি বন্ধ করব?
আমি "ঘুম 3600; লগআউট" এর মতো কিছু চালাতে চাই, তবে লগআউট বাশ কমান্ড কেবলমাত্র বর্তমান টার্মিনালটি বন্ধ করে দেয়। আমি কীভাবে পুরো ম্যাক ওএস এক্স সেশনটি বন্ধ করব?
উত্তর:
নিম্নলিখিত অ্যাপসক্রিপ্ট বর্তমান ব্যবহারকারী লগআউট করবে:
tell application "System Events" to log out
osascript
কমান্ডটি ব্যবহার করে আপনি এটি একটি ব্যাশ ওরফে মুড়িয়ে রাখতে পারেন :
alias maclogout="osascript -e 'tell application \"System Events\" to log out'"
এটি "Log> লগ আউট [ব্যবহারকারীর নাম] ..." ক্লিক করার মতো এবং এটি 2 মিনিটের অপেক্ষার পরে লগআউট হবে
এটি sleep
কমান্ডের সাথে সহজেই মিলিত হয় :
alias delayedlogout="sleep 3600; maclogout"
.. অথবা একটি একক ওরফে একত্রিত হতে পারে:
alias delayedlogout="sleep 3600; osascript -e 'tell application \"System Events\" to log out'"
alias maclogout="..."
ওএস এক্স-এ টার্মিনাল থেকে বর্তমান ব্যবহারকারীর লগ আউট করার কোনও "দুর্দান্ত" উপায় নেই it এটি করার 'অগোছালো' উপায়টি হ'ল ব্যবহারকারীর loginwindow
প্রক্রিয়াটিকে হত্যা করা । এটি আপনার ব্যবহারকারীর নাম অনুসারে চলমান সমস্ত প্রক্রিয়া (প্রোগ্রামগুলি) অভদ্রভাবে হত্যা করবে।
এটি করা একটি দুই-পদক্ষেপ প্রক্রিয়া।
টার্মিনালে, এটি চালান:
ps -Ajc | grep loginwindow
তারপর, চালান
sudo kill <pid>
<pid>
উপরের কমান্ড থেকে আউটপুট থেকে প্রথম সংখ্যা (দ্বিতীয় কলাম) কোথায় ।
এই কাজটি করার জন্য আমাকে যে প্রক্রিয়াটি করতে হয়েছিল তা জোর করার জন্য sudo কিল -9 ব্যবহার করুন।
সুতরাং উদাহরণস্বরূপ, যখন প্রথম কমান্ডের আউটপুট হয়:
joshhunt 41 1 41 5e15c08 0 Ss ?? 3:13.09 loginwindow
তারপরে আমি দৌড়ে যেতাম sudo kill 41
, আমার পাসওয়ার্ডটি প্রবেশ করান এবং তারপরে আমি লগ আউট হয়ে যাই।
এটি বাশ ওরফে একত্রিত করা যেতে পারে:
alias messylogout="ps -Ajc | grep loginwindow | grep -v grep | awk '{print \$2}' | sudo xargs kill"
sudo killall loginwindow
? কমপক্ষে 10.7 এ loginwindow
প্রক্রিয়াটি তত্ক্ষণাত্ পুনরায় খোলা হবে বলে মনে হচ্ছে।
আমি জানি এটি একটি পুরানো প্রশ্ন তবে এটি আমাকে সাহায্য করেছে, ওএস এক্স ১০.৮-এ আমার যে কমান্ডটি প্রয়োজন তা হ'ল:
ps -Ajc | grep loginwindow | awk '{print $2}' | sudo xargs kill -9
awk
বিবৃতি ভিন্ন এবং kill -9
নিশ্চিত লগ-ইন প্রম্পট প্রদর্শিত হয়।
আমি মনে করি 2 মিনিটের অপেক্ষা না করে কীভাবে ম্যাক ওএস এক্সের গ্রেসফুলিভাবে লগআউট করব তার উত্তর আমি পেয়েছি ।
আমি শিখেছি শিফট, অপশন এবং কমান্ড ধরে রাখা এবং "কিউ" টিপুন কৌতুকপূর্ণভাবে লগ আউট করবে এবং "আপনি লগ আউট করতে চান কিনা" জিজ্ঞাসা করবেন না।
সুতরাং আমি অটোমেটরের মাধ্যমে একটি অ্যাপলস্ক্রিপ্ট কোড করেছিলাম:
tell application "System Events"
keystroke "q" using {command down, shift down, option down}
end tell
আপনি যদি ম্যাকের গুইতে একই ব্যবহারকারী হিসাবে লগইন করে থাকেন তবে আপনি একটি সুডো-কম কমান্ড জারি করতে পারেন: launchctl reboot logout
যা ব্যবহারকারীকে বেশ কার্যকরভাবে লগআউট করে; এতে অ্যাপ্লিকেশনগুলিকে অনুমতি না দেওয়ার বিষয়ে সতর্কতা রয়েছে যা প্রস্থান করার সময় ইন্টারঅ্যাকশন করার অনুরোধ জানানো থেকে বিরত রয়েছে, তবে এটি বোঝা যাচ্ছে না যে এটি kill
(সিগ টার্ম) বা kill -9
(সিগ কিল) সম্ভবত একেবারে হত্যা করার মতো বিষয় ।
আমি যুক্তি দিয়ে বলব যে "সর্বোত্তম" উপায় ওএস এক্স 10.9 পোস্ট হতে পারে launchctl gui/$(id -u <username>) bootout
ওএস এক্স ১০.৯ পোস্টটি লঞ্চাক্টেলের জন্য ডকুমেন্টেশন চালিয়ে পাওয়া গেছে launchctl help
তবে মূলত উপরের কমান্ডটি ব্যবহারকারীর অস্থায়ী সেশনটি ছিন্ন করবে। বিকল্প launchctl user/$(id -u <username>) bootout
লঙ্ঘন স্থায়ী অধিবেশন যা ব্যবহারকারী ডেমনগুলি ব্যবহার করে যখন ব্যবহারকারী লগ ইন না করে।
এটি চালিয়ে পরীক্ষা করা যেতে পারে launchctl gui/$(id -u) bootout
, এটি অবিলম্বে আপনাকে লগ আউট করবে এবং সিস্টেমটিকে লগইন উইন্ডোটি প্রদর্শন করবে (কিছুটা বিলম্বের সাথে)।
sudo launchctl bootout gui/XXX
যেখানে XXX
সংখ্যাসূচক ব্যবহারকারী আইডি (ইউআইডি) হয়। নোট করুন যে i) bootout
সাব কম্যান্ডটি প্রথম আসে এবং ii) $(id)
ইউআইডি থেকে অনেক বেশি ফেরত দেয়।
আপনার টার্মিনালে যুক্ত করার জন্য একটি দুর্দান্ত ইউটিলিটি হ'ল লগআউট কমান্ড, যেমনটি ব্যবহার করা যায়:
logout UserName
এখানে কীভাবে:
আপনার .bash_ প্রোফাইলে সম্পাদনা করুন
nano ~/.bash_profile
এই লাইন যুক্ত করুন:
logout() {sudo launchctl bootout user/$(id -u "$1")}
ফাইল টিপুন সংরক্ষণ করুন ctrl+x
টার্মিনালটি পুনরায় চালু করুন
আপনি যেতে প্রস্তুত;)