સિગ્નલ - લીનક્સ / યુનિક્સ કમાન્ડ

Linux POSIX વિશ્વસનીય સિગ્નલો (પછી "પ્રમાણભૂત સંકેતો") અને POSIX પ્રત્યક્ષ-સમયના સંકેતોને સપોર્ટ કરે છે.

સ્ટાન્ડર્ડ સિગ્નલો

લિનક્સ નીચે સૂચિબદ્ધ પ્રમાણભૂત સંકેતોને સપોર્ટ કરે છે. કેટલાંક સંકેત નંબરો આર્કિટેક્ચર આધારિત છે, જેમ કે "વેલ્યુ" સ્તંભમાં દર્શાવેલ છે. (જ્યાં ત્રણ મૂલ્યો આપવામાં આવે છે, પ્રથમ એક સામાન્ય રીતે આલ્ફા અને સ્પાર માટે માન્ય છે, 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 બંધ ટ્વીટીમાં ટાઇપ કરવાનું રોકો
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 કોર નિયમિત (SVID) માટે ખરાબ દલીલ
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 જરૂરીયાતો સાથે સુસંગત છે, કોર ડમ્પ સાથે પ્રક્રિયા સમાપ્ત.

આગળ અન્ય વિવિધ સંકેતો

સિગ્નલ મૂલ્ય ક્રિયા ટિપ્પણી કરો
SIGEMT 7, -, 7 શબ્દ
SIGSTKFLT -, 16, - શબ્દ કોપ્રોસેસર પર સ્ટેક ફોલ્ટ (નહિં વપરાયેલ)
SIGIO 23,29,22 શબ્દ આઇ / ઓ હવે શક્ય છે (4.2 બીએસડી)
SIGCLD -, -, 18 Ign SIGCHLD માટેનું સમાનાર્થી
SIGPWR 29,30,19 શબ્દ પાવર નિષ્ફળતા (સિસ્ટમ વી)
SIGINFO 29, -, - SIGPWR માટે સમાનાર્થી
સિગ્લોસ્ટ -, -, - શબ્દ ફાઇલ લૉક હારી ગયો
SIGWINCH 28,28,20 Ign વિન્ડો પુન: માપ સંકેત (4.3 બીએસડી, સન)
SIGUNUSED -, 31, - શબ્દ નહિં વપરાયેલ સંકેત (SIGSYS હશે)

(સિગ્નલ 29 SIGINFO / SIGPWR એ આલ્ફા પર છે પરંતુ SIGLOSTsparc પર છે.)

SIGEMT POSIX 1003.1-2001 માં નિર્દિષ્ટ નથી, પરંતુ મોટાભાગના અન્ય Unices પર ક્યારેય નહીં દેખાય છે, જ્યાં તેની ડિફોલ્ટ ક્રિયા મુખ્યત્વે કોર ડમ્પ સાથે પ્રક્રિયા સમાપ્ત કરવા માટે છે.

SIGPWR (જે POSIX 1003.1-2001 માં સ્પષ્ટ થયેલ નથી) સામાન્ય રીતે તે અન્ય Unices પર મૂળભૂત રીતે અવગણવામાં આવે છે જ્યાં તે દેખાય છે.

SIGIO (જે POSIX 1003.1-2001 માં સ્પષ્ટ થયેલ નથી) ને કેટલાક અન્ય Unices પર મૂળભૂત રીતે અવગણવામાં આવે છે.

રીઅલ-ટાઇમ સિગ્નલો

Linux રીઅલ-ટાઇમ એક્સ્ટેન્શન્સ (અને હવે POSIX 1003.1-2001 માં શામેલ છે) માં મૂળભૂત રીતે વ્યાખ્યાયિત તરીકે વાસ્તવિક-સમય સંકેતોને સપોર્ટ કરે છે. લિનક્સ 32 રીઅલ-ટાઇમ સંકેતોને સપોર્ટ કરે છે, જે 32 ( SIGRTMIN ) થી 63 ( SIGRTMAX ) ના નંબર ધરાવે છે. (પ્રોગ્રામ્સ હંમેશાં સંકેત SIGRTMIN + n નો ઉપયોગ કરીને રીઅલ-ટાઇમ સંકેતોનો ઉલ્લેખ કરે છે, કારણ કે રીઅલ-ટાઇમ સંકેત નંબરોની શ્રેણી સમગ્ર Unices માં બદલાય છે.)

પ્રમાણભૂત સંકેતોથી વિપરીત, રીઅલ-ટાઇમ સિગ્નલોમાં કોઈ પૂર્વવ્યાખ્યાયિત અર્થ નથી: વાસ્તવિક-સમય સંકેતોનો સંપૂર્ણ સેટ એપ્લિકેશન-નિર્ધારિત હેતુઓ માટે ઉપયોગ કરી શકાય છે. (નોંધ, જો કે, LinuxThreads અમલીકરણ પ્રથમ ત્રણ રીઅલ-ટાઇમ સંકેતોનો ઉપયોગ કરે છે.)

બિનજરૂરી રીઅલ-ટાઇમ સિગ્નલ માટે ડિફૉલ્ટ ક્રિયા પ્રાપ્ત પ્રક્રિયાને સમાપ્ત કરવાનું છે.

પ્રત્યક્ષ-સમયના સિગ્નલો નીચેના દ્વારા અલગ પડે છે:

  1. રીઅલ-ટાઇમ સિગ્નલોના અનેક ઉદાહરણો કતારમાં મૂકી શકાય છે. તેનાથી વિપરીત, જો સંકેત વર્તમાનમાં અવરોધિત થાય છે ત્યારે પ્રમાણભૂત સિગ્નલના ઘણા ઉદાહરણો વિતરિત કરવામાં આવે છે, તો પછી માત્ર એક જ ઉદાહરણ કતારમાં છે.
  2. જો સિગ્નલ સિગ્ક્વે (2) નો ઉપયોગ કરીને મોકલવામાં આવે છે, તો એક સાથે મૂલ્ય (ક્યાં તો પૂર્ણાંક અથવા નિર્દેશક) સિગ્નલ સાથે મોકલી શકાય છે. જો પ્રાપ્ત પ્રક્રિયાએ SAIGIGACTION ધ્વજનો ઉપયોગ કરીને સિગ્નૅશન (2) માટે આ સંકેત માટે હેન્ડલર સ્થાપિત કર્યું હોય તો તે આ માહિતીને સીઆઇજી મૂલ્યની સીઆઇઆઇવી મૂલ્ય દ્વારા હેન્ડલરને બીજા દલીલ તરીકે પસાર કરી શકે છે. વળી, આ માળખાના સીઆઇઆઇપીડી અને સીઆઇઆઇઆઇડી ક્ષેત્રોનો ઉપયોગ પીએડી અને સિગ્નલ મોકલવાની પ્રક્રિયાના વાસ્તવિક વપરાશકર્તા ID મેળવવા માટે થઈ શકે છે.
  3. રીઅલ-ટાઇમ સિગ્નલો બાંયધરીકૃત ક્રમમાં વિતરિત કરવામાં આવે છે. એક જ પ્રકારની બહુવિધ રીઅલ-ટાઇમ સિગ્નલ્સ મોકલવામાં આવે તે ક્રમમાં પહોંચાડવામાં આવે છે. જો વિવિધ રીઅલ-ટાઇમ સિગ્નલો પ્રક્રિયામાં મોકલવામાં આવે છે, તો તે સૌથી નીચલા ક્રમાંકિત સંકેતથી પ્રારંભ કરવામાં આવે છે. (એટલે ​​કે, ઓછી સંખ્યાવાળા સિગ્નલોને ઉચ્ચતમ અગ્રતા છે.)

જો પ્રમાણભૂત અને રીઅલ-ટાઇમ બંને સંકેતો પ્રક્રિયા માટે બાકી છે, તો POSIX તેને અસ્પષ્ટ કરે છે જે પ્રથમ પહોંચાડે છે. અન્ય ઘણા અમલીકરણોની જેમ લીનક્સ, આ કિસ્સામાં પ્રમાણભૂત સંકેતોને અગ્રતા આપે છે.

POSIX મુજબ, અમલીકરણ પ્રક્રિયાને કતારમાં લેવા માટે ઓછામાં ઓછા _POSIX_SIGQUEUE_MAX (32) રીઅલ-ટાઇમ સિગ્નલોની મંજૂરી આપવી જોઈએ. જો કે, પ્રત્યેક પ્રક્રિયાની મર્યાદા મૂકવાને બદલે, લિનક્સ તમામ પ્રક્રિયાઓ માટે કતારવાળા રીઅલ-ટાઇમ સંકેતોની સંખ્યા પર સિસ્ટમ-વાઇડ મર્યાદા લાદે છે.

આ મર્યાદા / proc / sys / kernel / rtsig-max ફાઇલ મારફતે બદલાઈ (અને વિશેષાધિકાર સાથે) જોઈ શકાય છે. સંબંધિત ફાઇલ, / proc / sys / kernel / rtsig-max , તે શોધવા માટે કેટલા વાસ્તવિક-સમય સંકેતો હાલમાં કતારમાં છે તેનો ઉપયોગ કરી શકાય છે.

કોન્ફોમિંગ ટુ

POSIX.1

મહત્વનું: તમારા ચોક્કસ કમ્પ્યૂટર પર આદેશ કેવી રીતે વાપરવામાં આવે છે તે જોવા માટે man આદેશ ( % man ) નો ઉપયોગ કરો.