टास्क पूरा होने के बाद कंप्यूटर को कैसे बंद करें?


25

स्कूल जाने से पहले मैं आमतौर पर एक डाउनलोड शुरू करता हूं।
किसी विशेष कार्य के पूरा होने के बाद, आवश्यक बचत करने और कंप्यूटर को स्वचालित रूप से बंद करने के लिए मुझे किस कमांड का उपयोग करना चाहिए?
(अद्यतन स्थापित करने के बाद, या बड़ी फ़ाइल डाउनलोड करने के बाद कहें।)

मैंने आस्कुबंटू में क्रॉस-पोस्ट भी किया है ।

जवाबों:


25

यह निर्भर करता है कि आपने कार्य शुरू किया है। यदि यह कुछ कमांड लाइन उपकरण है तो आप बस चला सकते हैं haltया shutdown -h now:

  1. wget http://..../somelargefile; halt- के haltबाद निष्पादित किया जाएगाwget

  2. wget http://..../somelargefile && halt- haltयदि wgetकोई त्रुटि नहीं है, तो निष्पादित किया जाएगा

  3. wget http://..../somelargefile || halt- रिटर्न त्रुटियां haltहोने पर निष्पादित किया जाएगाwget

इसका उपयोग करना वैकल्पिक है kshutdown- इस ऐप में आप निर्दिष्ट कर सकते हैं कि क्या कार्रवाई की जानी चाहिए (रिबूट / शटडाउन / हाइबरनेट / आदि या कमांड निष्पादन) और कब (कुछ समय बाद या जब कोई अन्य एप्लिकेशन बाहर निकलता है)। यदि आप इस उपकरण का उपयोग करना चाहते हैं, तो आपको सही प्रक्रिया चुनने की आवश्यकता है - कुछ अपडेट उपयोगिताओं में कुछ उपप्रकार शुरू होते हैं।

KShutdown


4
आप shutdownप्रतीक्षा करने का समय भी दे सकते हैं ; उस उद्देश्य के लिए kshutdown का उपयोग करने की कोई आवश्यकता नहीं है।
Cascabel

1
नहीं, लेकिन shutdownवास्तविक घटना की प्रतीक्षा करने का कोई तरीका नहीं है।
शादुर

18

हर प्रक्रिया की procफाइलसिस्टम में इसकी प्रोसेस आईडी (पीआईडी) के अनुसार एक निर्देशिका होती है । इसलिए आप एक विशिष्ट प्रक्रिया की समाप्ति की प्रतीक्षा कर सकते हैं कि क्या इसकी निर्देशिका बार-बार मौजूद है।

आप इस तरह की प्रक्रिया समाप्ति के बाद सिस्टम शटडाउन करने के लिए इसका उपयोग कर सकते हैं (2296 की जगह पिड द्वारा प्रतीक्षा करने के लिए):

su -c 'while [[ -d /proc/2296 ]]; do sleep 1; done; poweroff'

लाभ:

  • आप यह तय कर सकते हैं कि शेल कमांड को सेट करने के बाद शटडाउन करना है या नहीं
  • शटडाउन को रूट के रूप में जारी किया जाता है, प्रतीक्षा करने का आदेश रूट के रूप में आवश्यक रूप से नहीं किया जाता है (देर से- sudoक्रॉसवर्ड प्रॉम्प्ट को हल करने की आवश्यकता नहीं है )।

नुकसान:

  • ऐसा हो सकता है कि आपकी प्रक्रिया समाप्त हो जाए और OS फिर उसी दूसरी (दौड़ की स्थिति) के भीतर एक नव स्पंदित प्रक्रिया के लिए एक ही पीड का पुन: उपयोग करे। इस प्रकार आप उस नई प्रक्रिया के समाप्त होने की प्रतीक्षा करना जारी रखेंगे।

2
मुख्य बिंदु: यह प्रक्रिया शुरू होने पर भी काम करता है।
हाइजेनबर्ग

यदि आपने एक टर्मिनल से कुछ शुरू किया है जो आपके पास अभी भी psउसी टर्मिनल में खुला है , तो आपको सीएमडी के लिए पीआईडी ​​स्पॉट करने में मदद करनी चाहिए। यदि प्रक्रिया थी / एक और टर्मिनल में है grep के माध्यम से सब कुछ के लिए पी एस आउटपुट उत्पादन के लिए अपने आदेश के लिए फ़िल्टर करने में मदद मिलेगी आप इसे खोजने के लिएps -elf | grep <command_related_word>
TafT

बेहतर pgrepउर्फ प्रक्रिया grep पर आधारित मेरे उत्तर की जांच करें ...
गाइल्स क्वेनोट

मैं इस आदेश को पृष्ठभूमि में कैसे रख सकता हूं?
डेरिह

1
@DerWeh इसे शेल स्क्रिप्ट में लपेटें और यहां दिए गए चरणों का पालन करें: stackoverflow.com/q/625409/1025391
moooeeeep

3

आप &&और ||ऑपरेटरों को एक साथ चेन कमांड के लिए उपयोग कर सकते हैं। उदाहरण के लिए:

apt-get update && sleep 2 && init 0

जो एप्टीट्यूड का उपयोग कर सिस्टम को एक अपडेट करेगा, 2 सेकंड प्रतीक्षा करें, और रनलेवल 0 पर जाएं, आपके सिस्टम के आधार पर यह वास्तव में हार्डवेयर को बंद कर सकता है या नहीं कर सकता है।

अधिक मनमाने ढंग से संचालन के बाद एक या एक से अधिक ऑपरेशनों के लिए बोलने के लिए, जैसे कि, संभवतः, वेब ब्राउज़र, डाउनलोड करने के लिए आपको डाउनलोड करने के लिए अतिरिक्त तर्क की आवश्यकता होगी ताकि यह सत्यापित किया जा सके कि डाउनलोड वास्तव में पूरा हो गया है, हालांकि, शेल तर्क अपरिवर्तित है।


3

यदि आप पहले से शुरू की गई प्रक्रिया की निगरानी करना चाहते हैं, तो आप इसे में कर सकते हैं :

# while pgrep &>/dev/null -f process_name; do sleep 60; done; shutdown -h now

1

एक एप्लीकेशन है, जिसका नाम सेंटिनेला है जो इसे आपके GUI के साथ कर सकता है: sentinella

इसे स्थापित करने के लिए:

sudo aptitude update
sudo aptitude install sentinella
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.