शटडाउन को अक्षम कैसे करें ताकि एक महत्वपूर्ण प्रक्रिया को बाधित न किया जा सके?


11

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


5
संभावित डुप्लिकेट: SO: अस्थायी रूप से लिनक्स को बंद करने से रोकता है , उत्तर विभिन्न स्तरों पर संकेत देता है, जिस पर यह किया जा सकता है, अर्थात शेल स्क्रिप्ट या डेस्कटॉप वातावरण का पावर प्रबंधन।
sr_

मुझे नहीं लगता कि रनलेवल्स या स्पष्टीकरण के लिंक के स्पष्टीकरण के बिना उत्तर पर्याप्त विशिष्ट है। यह U & L SE में नहीं है। क्या मैं पूछ सकता हूं कि आप कौन से डिस्ट्रो और संस्करण का उपयोग कर रहे हैं?
bsd

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

जवाबों:


1

भागो which shutdownदेखने के लिए जहां बंद कार्यक्रम के लिए पथ है। आप फ़ाइल का नाम बदल सकते हैं, हालांकि मैं इसके खिलाफ सलाह देता हूं।

एक और (सुरक्षित) तरीका। एक उपनाम का उपयोग करें: alias shutdown=' ' ऐसा कुछ अधिक प्रतिवर्ती है। यदि आप सभी उपयोगकर्ताओं से शटडाउन को रोकने की कोशिश कर रहे हैं, तो वैश्विक रूप से उपनाम जोड़ें।


मैं एक उपनाम का उपयोग करने के बारे में सोच रहा हूं, अब मुझे सिर्फ अपनी स्क्रिप्ट लिखना है। धन्यवाद!
zang3tsu

हॉल्ट या पावरऑफ़ जैसी अन्य कमांड के बारे में क्या। क्या आपको उपनाम बनाने की आवश्यकता है / उनका भी नाम बदलें?
mintyfreshpenguin

17

सिस्टमड के साथ नए सिस्टम के लिए यह द्वारा हल किया गया है systemd-inhibit। उपयोग का उदाहरण:

systemd-inhibit --why="Doing weekly backup" bash my-backups.sh

फिर, यदि कोई उपयोगकर्ता बंद करने का प्रयास करता है, तो जब तक कि उसे मजबूर नहीं किया जाएगा।

❯ systemctl poweroff
Operation inhibited by "bash my-backups.sh" (PID 2414 "systemd-inhibit", user ntrrgc),
reason is "Doing weekly backup".
Please retry operation after closing inhibitors and logging out other users.
Alternatively, ignore inhibitors and users with 'systemctl poweroff -i'.

हालांकि यह मुद्दा है: इसे रूट के रूप में गैर-अंतःक्रियात्मक रूप से चलाने से ताले की अनदेखी होगी। github.com/systemd/systemd/issues/2680
एलिसिया

मुझे लगता है कि आप उस बग रिपोर्ट को गलत समझते हैं, वे poweroffरूट नॉन-इंटरेक्टिव के रूप में चलने की बात कर रहे हैं
फेरीबग

मैंने बग रिपोर्ट को वास्तव में कैसे गलत किया? : एस
एलिसिया

2

मिशन क्रिटिकल सर्वर में कमांड की तरह "शटडाउन / रिबूट / पॉवरऑफ / हॉल्ट / होस्टनाम" को अक्षम करें

chmod 0 /sbin/shutdown

फिर यदि आपको इसका उपयोग करने की आवश्यकता है, तो इसे वापस भेज दें chmod 0755


2
के बारे में क्या halt, poweroffहै, और systemctl poweroff?
मार्टिन उडिंग

1

मैं कमांड को / etc / sudoers फ़ाइल में अक्षम कर दूंगा ताकि केवल रूट ही इसे निष्पादित कर सके।

in / etc / sudoers

# Cmnd alias specification
Cmnd_Alias     SHUTDOWN = /sbin/shutdown

# User privilege specification
root    ALL=(ALL:ALL) ALL
vmule   ALL=(ALL:ALL) ALL, !SHUTDOWN

और जब मैं कमांड चलाने की कोशिश करता हूं:

vmule@debian:~$ sudo /sbin/shutdown  -r now
Sorry, user vmule is not allowed to execute '/sbin/shutdown -r now' as root on debian.vm

क्या आप अपना उत्तर विस्तृत कर सकते हैं? शटडाउन स्पष्ट रूप से / etc / sudoers में निर्दिष्ट नहीं किया जा सकता है।
आर्केमोर

निश्चित रूप से, मैंने बेहतर स्पष्टीकरण के साथ उत्तर को संपादित किया। चीयर्स
vmule

0

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

बेशक एक खामी है, इस अवधि के दौरान कंप्यूटर का उपयोग नहीं किया जा सकता है।

यूनिक्स पर कीबोर्ड और माउस इनपुट को अक्षम करें (X के तहत)


-1

shutdownतकनीकी रूप से एक अनुप्रयोग है, जिसे आप हटा सकते हैं। भागो which shutdownwhichएक कमांड है जो आपको एक एप्लिकेशन का रास्ता दिखाता है। मेरे मामले में आउटपुट है /sbin/shutdown। यह एक फाइल है ताकि आप बस कर सकें rm shutdown। या यदि आप इसे अक्षम करना चाहते हैं तो इसे अस्थायी रूप से कॉपी करें, नाम बदलें और मूल फ़ाइल को हटा दें।

यदि आप करना चाहते हैं तो आपके पास पर्याप्त अनुमति होनी चाहिए rm shutdown। यह केवल पढ़ने के लिए है, इसलिए आपको त्रुटि मिल सकती है। rootयदि आवश्यक हो तो कमांड का उपयोग करके इसे हटाने का प्रयास करें rm shutdown


3
-rझंडा क्यों ? आपको एक फ़ाइल के लिए इसकी आवश्यकता नहीं है, और यदि आप कुछ गलत करते हैं, तो आपदा की आशंका है।
19
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.