जवाबों:
at 18:00 shutdown now
एक "एट" नौकरी बनाता है, जो आपके सिस्टम के आधार पर at
डेमन या शायद डेमॉन द्वारा निर्दिष्ट समय पर किया जाता cron
है।
shutdown 18:00
आपके शेल में एक प्रक्रिया शुरू करता है जो निर्दिष्ट समय तक इंतजार करता है और फिर शटडाउन करता है। यदि आपका शेल सत्र समाप्त हो जाता है तो यह आदेश समाप्त किया जा सकता है।
अधिकांश मामलों में शुद्ध परिणाम समान होगा: सिस्टम 18:00 पर बंद होता है।
एक अंतर यह है कि यदि आप उपयोग करते हैं at
, तो नौकरी को संग्रहीत किया जाएगा और अगर 18:00 से पहले सिस्टम को किसी अन्य माध्यम से बंद किया जाता है, तो फिर से बूट करने पर भी नौकरी के चलने का इंतजार रहेगा; यदि समय पहले ही बीत चुका है, तो शटडाउन तुरंत किया जाएगा जो काफी अप्रत्याशित हो सकता है।
एक और अंतर यह है कि उस समय के बाद लोगों को लॉग इन करने से रोकने के लिए निर्धारित समय से 5 मिनट पहले shutdown 18:00
एक /run/nologin
फ़ाइल बनाई जाएगी । साथ ही उपयोगकर्ताओं को लॉग इन चेतावनी के लिए प्रसारण संदेश भेजे जाएंगे कि सिस्टम बंद होने वाला है।
आपको यह तय करने के लिए इन अंतरों को ध्यान में रखना होगा कि किसका उपयोग करना है।
nohup
या disown
या जो कुछ भी है, अगर सामान्य रूप से लॉग आउट होने मारता चल पृष्ठभूमि प्रक्रियाओं। विभिन्न प्रणालियों के लिए अलग-अलग डिफॉल्ट हो सकते हैं। (मैं मान रहा हूं कि वास्तव में sudo shutdown
अभी भी एक प्रक्रिया चल रही है, बल्कि यह केवल init
शटडाउन टाइमर शुरू करने के लिए संकेत दे रहा है। बाद वाला वास्तव में वही हो सकता है, लेकिन मैंने हाल ही में चेक नहीं किया है। ओह, लेकिन @JdeBP के पास इसका जवाब है। )
at
इसलिए इसके cron
बजाय इसके माध्यम से काम करना है atd
?
यदि आपके पास CentOS 7 है, तो आपके पास एक ऑपरेटिंग सिस्टम है और उत्तर अलग है।
at 18:00 shutdown now
अभी भी at
सबसिस्टम के माध्यम से शेड्यूल करता है , लेकिन यह shutdown
कमांड, साथ ही साथ जो आप सीधे इनवॉइस करते हैं shutdown 18:00
, वह अलग है। यह वास्तव में सिस्टमड systemctl
प्रोग्राम है। systemctl
चीजों को अलग तरह से करता है।
सबसे पहले, systemctl
अनुसूचित शटडाउन अनुरोध भेजता है एक मामले से संसाधित होने के लिए, at
मामले में बहुत पसंद है । यह एक प्रणालीगत सामंजस्य है, हालांकि, विशेष रूप से logind
( systemd-shutdownd
मई 2015 में प्रणाली से निकाले गए d beenmon, जो परिवर्तन के बाद से CentOS 7 के बाद के मामूली संस्करणों के माध्यम से समाप्त हो गया है), at
उपतंत्र नहीं । systemctl
(सिस्टम-वाइड) डेस्कटॉप बस ब्रोकर को एक आंतरिक प्रोटोकॉल बोलता है, जिसके साथ संचार होता है logind
।
तो, at
मामले की तरह , वहाँ कोई shutdown
प्रक्रिया नहीं है वहाँ बैठकर गिनती और wall
संदेशों को जन्म देता है । तो कोई लॉग आउट कर सकता है और यह शेड्यूल को प्रभावित नहीं करेगा, और रद्द करना उतना सरल नहीं है जितना कि लॉगिन सत्र की अग्रभूमि प्रक्रिया को बाधित / मारना। जैसे के साथ at
।
वहाँ अभी भी संदेशों में विपरीत, at
मामला है, लेकिन वे द्वारा जारी किए जाते हैं logind
। at
मामले के विपरीत , अनुसूचित नौकरी पूरे सिस्टम रीस्टार्ट में नहीं रहती है, इसलिए एक वास्तविक शटडाउन एक अनुसूचित रद्द कर देता है। वहाँ है फाइल सिस्टम में एक फ़ाइल है, लेकिन यह किया जा रहा है /run/systemd/shutdown
जो गैर लगातार भंडारण है।
आगे अंतर यह है कि एक समय में केवल एक अनुसूचित शटडाउन हो सकता है, जबकि एक कई at
नौकरियों को प्रस्तुत कर सकता है , और पॉलिसी किट shutdown
गैर-लॉगिन-सत्र संदर्भ में एक at
नौकरी के रूप में चलाने के लिए नियम लागू करेगी जो कि shutdown
चलाने के लिए लागू नियमों से भिन्न हैं लॉगिन सत्र संदर्भ। बाद वाला अधिक अनुज्ञेय हो सकता है, जो सिस्टम को बंद करने के लिए सक्रिय लॉगिन सत्र में लॉग इन करने वाले एक अनपेक्षित उपयोगकर्ता को अनुमति देता है (कह सकता है) ।
shutdown 18:00
आपके शेल में एक प्रक्रिया शुरू होती है जो इंतजार करती है"। यदि आप उससे पहले लॉग आउट करते हैं तो क्या होगा?