सिग्नल - लिनक्स / यूनिक्स कमांड

Linux दोन्ही POSIX विश्वसनीय संकेत (यापुढे "मानक संकेत") आणि POSIX रीअल टाईम सिग्नल दोन्ही समर्थन करते.

मानक सिग्नल

Linux खालील सूचीबद्ध मानक संकेतांना समर्थन प्रदान करते. "सिंबल क्रमांक" हे "व्हॅल्यू" स्तंभात दर्शविल्याप्रमाणे आर्किटेक्चर आश्रित आहेत. (जिथे तीन मूल्ये दिली आहेत, प्रथम एक अल्फा आणि स्पार्कसाठी सामान्य आहे, i386 साठी मध्यम एक, ppc आणि sh, आणि mips साठी शेवटचे एक.

अ-संगत वास्तुकलावर सिग्नल अनुपस्थित असल्याचे सूचित करते.)

सारणीच्या "क्रिया" स्तंभातील प्रविष्ट्या सिग्नलसाठी डीफॉल्ट क्रिया निर्दिष्ट करतात, खालीलप्रमाणे:

टर्म

डीफॉल्ट अॅक्शन प्रक्रिया बंद करणे आहे.

Ign

डीग्नल अॅक्शन म्हणजे सिग्नलकडे दुर्लक्ष करणे

कोअर

डीफॉल्ट अॅक्शन म्हणजे प्रक्रिया समाप्त करणे आणि कोर डंप करणे.

थांबवा

डीफॉल्ट अॅक्शन म्हणजे प्रक्रिया थांबवणे.

प्रथम मूळ POSIX.1 मानक मध्ये वर्णन सिग्नल.

सिग्नल मूल्य क्रिया टिप्पणी
किंवा नियंत्रण प्रक्रियेची मृत्यू
SIGINT 2 टर्म कीबोर्डवरून व्यत्यय
SIGQUIT 3 कोअर कीबोर्डमधून बाहेर पडा
SIGILL 4 कोअर बेकायदेशीर सूचना
SIGABRT 6 कोअर समाधानापासून रद्द करा (3)
SIGFPE 8 कोअर फ्लोटिंग पॉईंट एक्सेप्शन
SIGKILL 9 टर्म सिग्नल बंद करा
SIGSEGV 11 कोअर अवैध मेमरी संदर्भ
SIGPIPE 13 टर्म तुटलेली पाईप: नाही वाचकांसोबत पाईप लिहा
SIGALRM 14 टर्म अलार्मवरून टायमर सिग्नल (2)
SIGTERM 15 टर्म टर्मिनेशन सिग्नल
SIGUSR1 30,10,16 टर्म वापरकर्ता-परिभाषित सिग्नल 1
SIGUSR2 31,12,17 टर्म वापरकर्ता-परिभाषित सिग्नल 2
SIGCHLD 20,17,18 Ign मुलाला थांबवले किंवा निरस्त केले
SIGCONT 19,18,25 थांबविले तर सुरू ठेवा
SIGSTOP 17,19, 23 थांबवा प्रक्रिया थांबवा
SIGTSTP 18,20,24 थांबवा Tty वर टाईप करणे थांबवा
SIGTTIN 21,21,26 थांबवा पार्श्वभूमी प्रक्रियेसाठी tty इनपुट
SIGTTOU 22,22,27 थांबवा पार्श्वभूमी प्रक्रियेसाठी tty आउटपुट

SIGKILL आणि SIGSTOP सिग्नल पकडले जाऊ शकत नाहीत, अवरोधित किंवा दुर्लक्ष केले जाऊ शकत नाहीत.

पुढे POSIX.1 मानक नसलेल्या सिग्नल नंतर परंतु SUSv2 आणि SUSv3 / POSIX 1003.1-2001 मध्ये वर्णन केले आहे.

सिग्नल मूल्य क्रिया टिप्पणी
SIGPOLL टर्म प्रदूषित इव्हेंट (Sys V) SIGIO चे समानार्थी शब्द
SIGPROF 27,27,29 टर्म प्रोफाइलिंग टायमर संपला
SIGSYS 12, -, 12 कोअर नियमानुसार खराब वाद (एसव्हीआयडी)
SIGTRAP 5 कोअर ट्रेस / ब्रेकपॉइंट ट्रॅप
SIGURG 16,23,21 Ign सॉकेटवरील अत्यावश्यक स्थिती (4.2 बीएसडी)
SIGVTALRM 26,26,28 टर्म व्हर्च्युअल अॅलर घड्याळ (4.2 बीएसडी)
SIGXCPU 24,24,30 कोअर CPU वेळ मर्यादा ओलांडली (4.2 बीएसडी)
SIGXFSZ 25,25,31 कोअर फाइल आकार मर्यादा ओलांडली (4.2 बीएसडी)

लिनक्स 2.2 पर्यंत आणि त्यात SIGSYS , SIGXCPU , SIGXFSZ आणि (SPARC आणि MIPS व्यतिरिक्त इतर आर्किटेक्चर्सवर) SIGBUS साठी मूलभूत वर्तन (कोर डंप शिवाय) प्रक्रिया समाप्त करणे होते. (काही इतर Unices वर SIGXCPU आणि SIGXFSZ साठी डीफॉल्ट कारवाई कोर डंप न करता प्रक्रिया समाप्त करणे आहे.) Linux 2.4 कोर डंप सह प्रक्रिया समाप्त, या सिग्नल साठी POSIX 1003.1-2001 आवश्यकता conforms.

पुढील विविध इतर संकेत

सिग्नल मूल्य क्रिया टिप्पणी
SIGEMT 7, - 7 टर्म
SIGSTKFLT -, 16, - टर्म कॉपोकसेसरवर स्टॅक फॉल्ट (न वापरलेले)
SIGIO 23,29,22 टर्म I / O आता शक्य आहे (4.2 बीएसडी)
SIGCLD -, -, 18 Ign SIGCHLD साठी एक पर्यायी शब्द
SIGPWR 29,30,19 टर्म उर्जा अयशस्वी (सिस्टम व्ही)
SIGINFO 2 9, -, - SIGPWR साठी पर्यायी शब्द
SIGLOST -, -, - टर्म फाइल लॉक हरवले
SIGWINCH 28,28,20 Ign विंडो रिसीज सिग्नल (4.3 बीएसडी, सन)
SIGUNUSED -, 31, - टर्म न वापरलेले सिग्नल (SIGSYS असेल)

(सिग्नल 29 एक अल्फावर SIGINFO / SIGPWR आहे परंतु एक स्पार्क वर SIGLOST आहे.)

SIGEMT POSIX 1003.1-2001 मध्ये निर्दिष्ट नाही, परंतु इतर सर्व Unices वर कधीही कधीही दिसत नाही, जेथे त्याच्या डीफॉल्ट क्रिया मुख्यतः कोर डंपसह प्रक्रियेस बंद करणे असते.

SIGPWR (जे POSIX 1003.1-2001 मध्ये निर्देशीत नाही) सामान्यत: त्या इतर युनिसवर डिफॉल्टपणे दुर्लक्ष केले जाते ज्यात ती दिसते.

SIGIO (जो POSIX 1003.1-2001 मध्ये निर्दिष्ट नाही) डिफॉल्टद्वारे बर्याच इतर युनिससवर दुर्लक्ष केले जाते.

रिअल-टाइम सिग्नल

Linux वास्तविक-वेळेच्या सिग्नलचा आधार म्हणून मूळतः POSIX.4 रिअल-टाइम विस्तारांमध्ये परिभाषित करते (आणि आता POSIX 1003.1-2001 मध्ये समाविष्ट केले आहे). लिनक्स 32 रिअल-टाइम सिग्नलचा 32 ( एसआयजीआरटीएमआयएन ) ते 63 पर्यंत ( एसआयजीआरटीएमएक्स ) समर्थन करते. (प्रोग्रॅमने नेहमी रिअल-टाइम सिग्नलचा उल्लेख SIGRTMIN + n चा वापर करावा , कारण रिलायन्स सिग्नल नंबरची श्रेणी Unices वर बदलते.)

मानक सिग्नलप्रमाणे, रिअल-टाइम सिग्नलकडे पूर्वनिर्धारित अर्थ नाहीत: वास्तविक-वेळ सिग्नलचा संपूर्ण संच, अनुप्रयोग-परिभाषित उद्देशांसाठी वापरला जाऊ शकतो. (टीप की, LinuxThreads लागूकरण पहिल्या तीन रिअल-टाइम सिग्नलचा वापर करते.)

न काल स्टँडअलोन सिग्नलची पूर्वनिर्धारित कृती म्हणजे प्राप्त करण्याची प्रक्रिया समाप्त करणे.

रिअल-टाइम सिग्नल खालीलप्रमाणे ओळखले जातात:

  1. रिअल-टाइम सिग्नलचे अनेक उदाहरण रांगेत असू शकतात. कॉन्ट्रास्ट करून, जर सिग्नल सध्या ब्लॉक केलेले असताना मानक सिग्नलचे अनेक उदाहरण वितरीत केले जातात, तर केवळ एक उदाहरण कतारबद्ध आहे.
  2. जर सिग्क्व्यू (2) वापरुन सिग्नल पाठविले असेल तर सिग्नल घेऊन एक परस्पर मूल्य (एकतर एक पूर्णांक किंवा पॉइंटर) पाठविला जाऊ शकतो. जर प्राप्त करण्याची प्रक्रिया SAGIGACTION ध्वज सिग्नाइजेशनचा वापर करून या सिग्नलसाठी एक हँडलर स्थापित करते (2) तर हे हा डेटा हँडलरला दुसरा तर्क म्हणून siginfo_t संरचनाच्या si_value क्षेत्राद्वारे प्राप्त करू शकते. याच्या व्यतिरीक्त, या संरचनेतील सीआयआयपीआयडी आणि सीआययूआयडी क्षेत्र पीआयडी प्राप्त करण्यासाठी आणि सिग्नल पाठविण्याच्या प्रक्रियेचे वास्तविक यूजर आयडी मिळवण्यासाठी वापरले जाऊ शकते.
  3. रिअल-टाईम सिग्नल गॅनिन्ड ऑर्डरमध्ये वितरीत केले जातात. एकाच प्रकारचे अनेक रिअल-टाइम सिग्नल त्यांना पाठविले होते त्या क्रमाने वितरीत केले जातात. वास्तविक री-टाइम सिग्नल एखाद्या प्रक्रियेस पाठविल्यास, त्यांना सर्वात कमी-क्रमांकित सिग्नलपासून प्रारंभ केले जाते. (Ie, निम्न-क्रमांकित सिग्नलकडे सर्वोच्च प्राधान्य आहे.)

जर मानक आणि रिअल-टाइम सिग्नल दोन्ही प्रक्रियेसाठी प्रलंबित असतील, तर POSIX ने हे अनिर्बंध सोडले आहे जे प्रथम वितरित केले जाते. Linux, इतर अनेक लागूकरणांप्रमाणे, या प्रकरणात मानक सिग्नलला प्राधान्य देते.

POSIX नुसार, एका कार्यान्वयनाने कमीतकमी _POSIX_SIGQUEUE_MAX (32) रिअल-टाइम संकेतांना परवानगी देणे आवश्यक आहे जे एका प्रक्रियेस रांगेत असते. तथापि, प्रत्येक-प्रक्रिया मर्यादा ठेवण्यापेक्षा, Linux सर्व प्रक्रियांसाठी रांगेत रिअल-टाइम सिग्नलच्या संख्येवर सिस्टम-व्यापी मर्यादा लागू करते.

ही मर्यादा / proc / sys / kernel / rtsig-max फाइल द्वारे बदलली जाऊ शकते (आणि विशेषाधिकार सह). संबंधित फाइल, / proc / sys / kernel / rtsig-max , चा वापर किती वास्तविक-वेळ सिग्नल सध्या रांगेत आहे हे शोधण्याकरीता केला जाऊ शकतो.

TO CONFORMING

POSIX.1

महत्वाचे: आपल्या कॉम्प्यूटरवर आज्ञा कशी वापरली जाते हे पाहण्यासाठी man कमांड ( % man ) वापरा.