स्क्रिप्ट बंद करने से पहले निष्पादित करें


21

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


भविष्य के उपयोगकर्ताओं के लिए उपयोगी हो सकता है: askubuntu.com/a/747556/295286
सर्गी कोलोडियाज़नी

जवाबों:


7

आप लाइन /etc/gdm/PostSession/Defaultसे पहले फाइल में अपना कमांड जोड़ सकते हैं exit 0


अगर मैं "लॉग आउट" विकल्प पर जाता हूं तो यह ठीक निष्पादित होता है, लेकिन अगर मैं शटडाउन दबाता हूं तो लगभग तात्कालिक ubuntu बैंगनी लॉगआउट स्क्रीन दिखाई देती है और स्क्रिप्ट निष्पादित करती है (स्क्रीन में जहां 5 छोटी गेंदों के साथ उबंटू लोगो दिखाई देता है)। (नींद 20 के साथ परीक्षण किया गया)।
जुआनफ्रैन

"क्या आप सुनिश्चित हैं कि आप शटडाउन करना चाहते हैं" संवाद यहां स्थित है: / usr / lib / सूचक-सत्र / gtk-logout-helper और संकेतक-सत्र पैकेज चुड़ैल का एक भाग C / C ++ में लिखा गया है, इसलिए इसका बहुत कठिन है संपादित करें। आपके पास कुछ गनोम-गुरु मेलिंग सूची में पूछने के लिए अधिक भाग्य हो सकता है;)
LassePoulsen

6

आप /etc/rc0.d (शटडाउन के लिए) और /etc/rc6.d (रिबूट के लिए) में एक स्क्रिप्ट बनाकर ऐसा कर सकते हैं। ऐसा करने के लिए, चलाएं:

gksu gedit /etc/rc0.d/K01mycustomscript

टेक्स्ट एडिटर में अपनी शटडाउन स्क्रिप्ट संपादित करें और फिर रन करें:

sudo chmod +x /etc/rc0.d/K01mycustomscript

और अगर आप चाहते हैं कि यह रिबूट पर भी चले तो इसे चलाएं:

sudo cp /etc/rc0.d/K01mycustomscript /etc/rc6.d/K01mycustomscript

स्रोत: यह फोरम थ्रेड


उनके विवरण से ऐसा लगता है कि वह एक ग्राफिकल ऐप को इनवाइट करना चाहते हैं, इसलिए इसे xserver तक पहुंचने की आवश्यकता है। इस मामले में init-script का उपयोग करने से काम नहीं होता है।
sepp2k

1
हाँ ... जैसा कि @ sepp2k कहते हैं, स्क्रिप्ट xserver के बाहर चल रही है :(
juanefren

4

मेरे लिए superuser.com के लिए एक सवाल की तरह लगता है। वैसे भी, कुछ Googling के बाद मैंने पाया कि लॉगआउट पर स्क्रिप्ट कैसे चलाई जाए? जो स्क्रिप्ट को $ HOME / .bash_logout में जोड़ने के लिए कहता है।

अगर वह काम नहीं करता है, तो जोड़ें

$HOME/.bash_logout

/ etc / gdm / PostSession / Default इसलिए यह लॉगआउट स्क्रिप्ट को ठीक से निष्पादित करता है।

बंद करने से पहले उपयोगकर्ता को वैसे भी लॉग ऑफ किया जाता है, यह देखकर दोनों आधारों को कवर करना चाहिए।


1
चूंकि वह शायद स्क्रिप्ट को हर बार नहीं चलाना चाहता, इसलिए वह बैश से बाहर निकल जाता है (यानी हर बार जब वह एक टर्मिनल विंडो बंद करता है), मुझे नहीं लगता कि कमांड को .bash_logout में लिखना एक अच्छा विचार है। हालाँकि इसे PostSession / Default में लिखना मेरे लिए एक अच्छा विचार है।
sepp2k

पहले से ही यह फ़ाइल है, लेकिन ऐसा लगता है कि यह काम नहीं कर रहा है (मैंने नींद 20 लगाई और यह बंद होने की प्रतीक्षा नहीं करता था।)
juanefren

जब आप टर्मिनल को बंद करते हैं तो .bash_logout नहीं चलेगा, यह केवल तब चलेगा जब आप टर्मिनल-लॉगिन-सत्र (यानी यदि आप एक realTTY लॉगआउट करते हैं ) से लॉग आउट करेंगे और तब नहीं जब आप gnome का लॉगआउट करते हैं।
LassePoulsen

सुपरसुसर के लिए यह एक सवाल क्यों होगा? यदि प्रश्न उबंटू के बारे में है तो यह विषय पर है।
NN

2

यदि आप ./app-to-run && sudo shutdown -h nowकंप्यूटर करते हैं तो एक बार ऐप-टू-रन करना बंद कर देना चाहिए।


1
यह बहुत क्रूड शटडाउन होगा। आप इसके बजाय डेस्कटॉप शटडाउन स्क्रिप्ट को कॉल करना चाहते हैं।
txwikinger

Sudo उपयोगकर्ता से पासवर्ड टाइप करने के लिए कह सकता है यदि ऐप-टू-रन काफी लंबा है ... तो यह कभी भी बंद नहीं होगा।
सांब

1

टॉमी ब्रून की तुलना में लगभग एक ही जवाब लेकिन रूट पासवर्ड पूछे जाने के साथ लटकने के जोखिम के बिना:

sudo sh -c "./app-to-run; shutdown -h now"
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.