उपयोगकर्ता द्वारा मुझे लॉग आउट करने पर `किल इनिट` क्यों चलता है?


12

Ubuntu 14.XX पर चलने वाले कई कंप्यूटरों पर, मैंने उपयोगकर्ता के रूप में कमांड "किलॉल इनिट" को चलाया, और तुरंत लॉग आउट किया गया। मैं एक समस्या के बिना फिर से लॉग इन कर सकता हूं। ऐसा क्यों है? पर्दे के पीछे क्या चल रहा है?

जवाबों:


21

नए उपस्टार्ट सिस्टम पर, जब आप GUI का उपयोग करके लॉगिन करते हैं तो सत्र प्रारंभ प्रक्रिया शुरू होती है। चूंकि उबंटू अपस्टार्ट का उपयोग करता है, इसलिए initआपके सत्र के लिए एक प्रक्रिया है। pstree -ps $$किसी टर्मिनल में इसका उपयोग करके परीक्षण करें :

$ pstree -ps $$
init(1)───lightdm(1741)───lightdm(9511)───init(9526)───/usr/bin/termin(9570)─┬─gnome-pty-helpe(9734)                                                                                                                                                                                  
                                                                             └──zsh(7944)

इसलिए जब आप दौड़ते हैं killall init, तो आप initपीआईडी ​​1 को नहीं मार रहे हैं (क्योंकि आपके पास विशेषाधिकार नहीं है), लेकिन आपका सत्र init, जो इस उदाहरण में पीआईडी ​​9526 होगा।

चूंकि यह initआपके जीयूआई सत्र के लिए शासी प्रक्रिया है, इसलिए यह आपके सत्र को मारता है और इसलिए आपको लॉग आउट किया जाता है।


क्या किसल हमेशा प्रक्रिया के पेड़ में निकटतम रिश्तेदार को संकेत भेजता है? अगर मैं कमांड को रूट के रूप में चलाता हूं (उदाहरण के लिए sudo के साथ), तो क्या मुझे वही परिणाम मिलेगा, या कर्नेल घबराहट होगी?
टिम सेगिन

1
@TimSeguine जैसा कि नाम कहता है, यह इस नाम के साथ सभी प्रक्रियाओं के लिए भेजा जाता है। BTW, कुछ लोग pkillइसके बजाय पसंद करते हैं killallक्योंकि killallसोलारिस जैसी अन्य प्रणालियों पर पूरी तरह से अलग काम करता है ...
glglgl

killallसभी को मारता है। इसलिए यह नाम।
ओरियन

1
@TimSeguine यह सभी को भेजता है, लेकिन यदि आप एक सामान्य उपयोगकर्ता हैं तो आप अन्य उपयोगकर्ताओं की प्रक्रियाओं को सिग्नल नहीं भेज सकते हैं। तो यह केवल अपनी प्रक्रिया के पेड़ में एक को प्रभावित करता है।
बरमार

चल रहा है killall initके रूप में rootएक अच्छा विचार की तरह प्रतीत नहीं होता है - विशेष रूप से एक पर उपयोगी प्रणाली - मुझे लगता है कि initएक कर्नेल आतंक अगर यह मर जाता है, क्योंकि यह करने के लिए इरादा नहीं है कभी एक तक पहुंचने का कारण बनता है returnयह के अंत में mainकोड पाश।
17
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.