क्या लिनक्स "शटडाउन" कमांड एक पैरामीटर को SIGTERM और SIGKILL भेजने के बीच ठहराव निर्धारित करने की अनुमति देगा?


4

मैन पेज नं। फेडोरा पर /etc/rc.d/init.d/halt है। इसमें एक कठिन कोडित ठहराव है, लेकिन उस स्क्रिप्ट को बदलने की तुलना में बेहतर तरीका है। किसी भी सहायता की सराहना की जाएगी।

जवाबों:


4

मेरे सिस्टम के मेनपेज में है:

-t sec Tell  init(8)  to  wait sec seconds between sending
processes the warning and  the kill signal, before changing 
to another runlevel.

(यह सर्वरफ़ोल्ट के लिए शायद अधिक उपयुक्त प्रश्न है)


1
क्या यही ओपी चाहता है? चेतावनी और वास्तविक बंद के बीच देरी ? या SIGTERM (सुंदर ढंग से प्रक्रियाओं को समाप्त करने के लिए पूछें) और SIGKILL (तुरंत प्रक्रियाओं को मारें ) के बीच देरी ?
रिंग Ø

1
या तुमने कोशिश की? लगता है कि पदावनत कर दिया जाएगा। मैंने निश्चित रूप से इसे किसी भी वितरण पर काम करने के लिए नहीं प्राप्त किया है जो मैंने कोशिश की है।
s2cuts 8

1
@ ring0: SIGTERM चेतावनी है।

@ s2cuts: मेरे पास है। मैं sysvinit पैकेज (2.88dfs) के साथ एक यथोचित वर्तमान डेबियन चला रहा हूं। "अपस्टार्ट" init प्रतिस्थापन वास्तव में इस विकल्प को अनदेखा करता है।

1
@ ring0: मैं मानता हूं कि मैन पेज बुरी तरह से बना हुआ है। एक पाठ चेतावनी है जो तुरंत भेजी जाती है, लेकिन इसे लॉग इन उपयोगकर्ताओं के लिए भेजा जाता है , प्रक्रियाओं में नहीं। तब यह SIGTERM और SIGKILL दोनों को भेजने के लिए शटडाउन समय तक प्रतीक्षा करता है, -t तर्क द्वारा दिए गए समय की प्रतीक्षा करता है। संदर्भ में, वास्तव में संदर्भित चेतावनी का मतलब SIGTERM का चेतावनी संकेत है - केवल चेतावनी प्रक्रिया प्राप्त कर सकते हैं संकेत है।

0

SIGTERM और SIGKILL के बीच एक विशिष्ट विलंब होने के लिए, आप एक स्क्रिप्ट में रूट के रूप में तीन कमांड निर्दिष्ट कर सकते हैं

kill -SIGTERM -1
sleep 20
kill -SIGKILL -1

सेवा

  • सभी प्रक्रियाओं को SIGTERM भेजें (लेकिन 1),
  • 20 सेकंड के लिए प्रतीक्षा करें, फिर
  • -9शेष प्रक्रियाओं को तुरंत मारने के लिए संकेत भेजें ,

लेकिन यह आपकी खुद की प्रक्रियाओं को, आपके shellदुभाषिया को मार देगा ...
सभी प्रक्रियाओं को सूचीबद्ध करने के लिए एक स्क्रिप्ट (उदाहरण के लिए पर्ल) का विकास करना, फिर केवल उन प्रक्रियाओं को मारना जो आपकी स्वयं की स्क्रिप्ट को नुकसान नहीं पहुंचाती हैं, और इसे nohupपिता के साथ संलग्न करने के लिए शुरू करें। -ऑफ-ऑल 1प्रोसेस, जॉब करेंगे।

एक अन्य समाधान के स्रोत shutdown(या halt) को डाउनलोड करना है और यह देखना है कि यह कैसे काम करता है - दो संकेतों को भेजने के बीच एक निश्चित या वैकल्पिक देरी को जोड़ना बहुत कठिन नहीं होना चाहिए।


यह शायद एक समाधान के सबसे करीब है। मैंने पहले ही /etc/rc.d/init.d/halt को संशोधित कर लिया है और SIGTERM और SIGKILL भेजने के बीच में अधिक उपयुक्त ठहराव डाल दिया है। केवल समस्या यह है कि यह कठिन कोडित है।
s2cuts
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.