अनुसूचित खाता लॉक मैक ओएस एक्स


4

आप अपने मैक ओएस एक्स खाते को स्क्रीन को स्वचालित रूप से लॉक करने के लिए सेट कर सकते हैं ताकि पासवर्ड निष्क्रियता के एक निश्चित समय के बाद आवश्यक हो, लेकिन क्या आप शेड्यूल का उपयोग करके एक ही काम कर सकते हैं (हर दिन 5:30 बजे कहते हैं)? एक तरह से आप कंप्यूटर को चालू / बंद कर सकते हैं या एक निश्चित समय पर नींद से जाग सकते हैं।

जवाबों:


4

आप ऐसा करने के launchdलिए उपयोग कर सकते हैं । निम्नलिखित xml को एक नई टेक्स्ट फ़ाइल में रखें ~/Library/LaunchAgents/और इसे एक प्रत्यय के साथ कुछ वर्णनात्मक कहें .plist। उदाहरण के लिए, मेरा है ~/Library/LaunchAgents/logoutAt1730.plist

<?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>Label</key>
        <string>Logout At 5:30 PM</string>
        <key>ProgramArguments</key>
        <array>
            <string>/System/Library/CoreServices/Menu Extras/User.menu/Contents/Resources/CGSession</string>
            <string>-suspend</string>
        </array>
        <key>StartCalendarInterval</key>
        <dict>
            <key>Hour</key>
            <integer>17</integer>
            <key>Minute</key>
            <integer>30</integer>
        </dict>
    </dict>
    </plist>

यदि आप चाहते हैं कि यह वर्तमान बिजली चक्र पर चले (उदाहरण के लिए आप इसे प्रभावी होने के लिए पुनः आरंभ नहीं करना चाहते) नए आइटम के बारे में launchctl load ~/Library/LaunchAgents/logoutAt1730.plistबताने के लिए उपयोग करें launchd। अगली बार लॉगिन करते समय यह स्वचालित रूप से लोड होना चाहिए।

का प्रयोग करें launchctl listऔर मान्य करने के लिए है कि लेबल स्ट्रिंग (कम से 5:30 PM पर लॉग आउट) के लिए देखो launchdआइटम के बारे में जानता है।

मैंने अपने कार्य केंद्र पर इस कार्य को सत्यापित किया है। मैं नहीं जानता कि क्यों cronनहीं करता है।


1
हाँ, यह काम किया, धन्यवाद! लॉगआउट के बजाय फ़ाइल को निलंबित कर दिया गया। अब मुझे बस एक पॉपअप के साथ उपयोगकर्ता की पुष्टि प्राप्त करने की आवश्यकता है, अगर यह संभव है - मैं एक और प्रश्न खोलूंगा
newenglander

नया सवाल यहां आया, FYI: apple.stackexchange.com/q/51006/8699
newenglander

4

EDIT: हालाँकि मैं इस बारे में निश्चित नहीं हूँ कि cronइस विशिष्ट उपयोग के मामले में काम करने में असफलता क्यों है, इस उत्तर का उपयोग करते हुए (वर्तमान में अधिक सही) उत्तर द्वारा इसे आगे बढ़ाया गया है launchd

उचित समय पर कोंट्राब में crontab -eजोड़ने के /System/Library/CoreServices/Menu\ Extras/User.menu/Contents/Resources/CGSession -suspendलिए टर्मिनल एप्लिकेशन में उपयोग करें , जैसे (5:30 बजे के लिए):

30 17 * * * /System/Library/CoreServices/Menu\ Extras/User.menu/Contents/Resources/CGSession -suspend


टिप के लिए धन्यवाद, यह मेरे लिए काम नहीं करता है, लेकिन यह एक और सवाल है। (क्या यह 5 के लिए 7 के बजाय 17 नहीं होना चाहिए?)
newenglander

आह हाँ मैं यह मक्खी पर किया। अच्छी नज़र। मैंने केवल / System / Library / CoreServices / Menu \ Extras / User.menu / Contents / Resources / CGSession -suspend कमांड को खुद से आज़माया और यह काम किया। आप कौन सा ओएस चला रहे हैं?
zwerdlds

शेर। कमांड ने खुद मेरे लिए भी काम किया, लेकिन मैंने भविष्य में कुछ मिनटों के साथ एक कॉन्टैब सेट करने की कोशिश की और निर्दिष्ट समय आने पर कुछ भी नहीं हुआ।
newenglander

हम्म, मैं एक ही मुद्दे का अनुभव कर रहा हूँ। मैं इसे आज रात में देखूंगा। शायद यह एक स्क्रिप्ट के रूप में काम करेगा?
18 नवंबर को zwerdlds

वहां कोई किस्मत नहीं। मुझे लगता है कि क्रोनोजर (रूट) चलाने वाला उपयोगकर्ता किसी अन्य उपयोगकर्ता को निलंबित नहीं कर सकता है, कम से कम इस कमांड के साथ नहीं।
newenglander

0

मैं भी कुछ ऐसा ही चाहता था, लेकिन एक विशिष्ट समय पर हमेशा ताला लगाने के बजाय, मैं केवल कुछ शर्तों पर ही ताला लगाना चाहता था। मैं उन स्थितियों की जांच करने के लिए जिस स्क्रिप्ट का उपयोग करता था, वह क्रोन द्वारा ट्रिगर की गई थी, इसलिए मेरे पास एक ही मुद्दा था।

जब मैंने CGSession -suspendएक क्रोनजॉब में कोशिश की , और देखा कि जब इसे ट्रिगर किया गया था, तो Console.app ने एक त्रुटि लॉग की, यह कहते हुए कि केवल रूट और वर्तमान लॉग किया गया उपयोगकर्ता फास्ट उपयोगकर्ता स्विचिंग को ट्रिगर कर सकता है। तो मेरा समाधान: इसे जड़ के रूप में चलाएं।

इसलिए मेरी स्क्रिप्ट में, मैंने कंप्यूटर को लॉक करने के लिए, निम्नलिखित का उपयोग किया:

sudo /usr/bin/osascript -e 'tell application "System Events" to do shell script "/System/Library/CoreServices/Menu\\ Extras/User.menu/Contents/Resources/CGSession -suspend"'

जटिल? हाँ। काम कर रहे? सकारात्मक!


का उपयोग sudo .../CGSession -suspendया तो काम नहीं किया तो (AppleScript का उपयोग किए बिना) सीधे?
nohillside

हाँ, यह नहीं था। पता नहीं क्यों।
गिलियूम बॉउड्रीउ
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.