Skip to main content

సిగ్నల్ - Linux / Unix కమాండ్

Anonim

Linux POSIX నమ్మకమైన సిగ్నల్స్ (ఇటు తరువాత "ప్రామాణిక సిగ్నల్స్") మరియు POSIX రియల్ టైమ్ సిగ్నల్స్ రెండింటికి మద్దతు ఇస్తుంది.

ప్రామాణిక సిగ్నల్స్

Linux క్రింద ఉన్న ప్రామాణిక సంకేతాలను మద్దతు ఇస్తుంది. "విలువ" నిలువు వరుసలో సూచించిన విధంగా అనేక సిగ్నల్ సంఖ్యలు నిర్మాణంపై ఆధారపడి ఉంటాయి. (ఇక్కడ మూడు విలువలు ఇవ్వబడతాయి, మొదటిది ఆల్ఫా మరియు స్పార్క్ల కోసం చెల్లుబాటు అవుతుంది, i386, ppc మరియు sh మరియు మిస్ కోసం చివరిది.

A - సంబంధిత నిర్మాణంపై ఒక సిగ్నల్ లేదు అని సూచిస్తుంది.)

టేబుల్ యొక్క "యాక్షన్" కాలమ్లోని ఎంట్రీలు ఈ క్రింది విధంగా సిగ్నల్ కోసం డిఫాల్ట్ చర్యను పేర్కొంటాయి:

టర్మ్

డిఫాల్ట్ చర్య ప్రక్రియ రద్దు చేయడం.

IGN

డిఫాల్ట్ చర్య సిగ్నల్ విస్మరించడం.

కోర్

డిఫాల్ట్ చర్య ప్రక్రియ మరియు డంప్ కోర్ రద్దు చేయడం.

ఆపు

డిఫాల్ట్ చర్య ప్రక్రియ ఆపడానికి ఉంది.

మొదట అసలు POSIX.1 ప్రమాణంలో వివరించిన సంకేతాలు.

సిగ్నల్విలువయాక్షన్వ్యాఖ్య
లేదా నియంత్రణ ప్రక్రియ మరణం
SIGINT2టర్మ్కీబోర్డ్ నుండి అంతరాయం
SIGQUIT3కోర్కీబోర్డ్ నుండి నిష్క్రమించండి
SIGILL4కోర్అక్రమ ఇన్స్ట్రక్షన్
SIGABRT6కోర్నుండి సిగ్నల్ను రద్దు చేయండి గర్భస్రావము (3)
SIGFPE8కోర్ఫ్లోటింగ్ పాయింట్ మినహాయింపు
SIGKILL9టర్మ్సిగ్నల్ కిల్
SIGSEGV11కోర్చెల్లని మెమరీ సూచన
SIGPIPE13టర్మ్బ్రోకెన్ పైప్: ఏ రీడర్లతో పైపుకు వ్రాయండి
SIGALRM14టర్మ్టైమర్ సిగ్నల్ నుండి అలారం (2)
SIGTERM15టర్మ్ముగింపు సంకేతం
SIGUSR130,10,16టర్మ్వినియోగదారు నిర్వచించిన సిగ్నల్ 1
SIGUSR231,12,17టర్మ్వినియోగదారు నిర్వచించిన సిగ్నల్ 2
SIGCHLD20,17,18IGNచైల్డ్ ఆగిపోయింది లేదా రద్దు చేయబడింది
SIGCONT19,18,25 నిలిపివేసినట్లయితే కొనసాగించండి
SIGSTOP17,19,23ఆపుప్రాసెస్ని ఆపివేయి
SIGTSTP18,20,24ఆపుTty వద్ద టైప్ చేయవద్దు
SIGTTIN21,21,26ఆపునేపథ్య ప్రక్రియ కోసం tty ఇన్పుట్
SIGTTOU22,22,27ఆపునేపథ్య ప్రక్రియ కోసం tty అవుట్పుట్

సంకేతాలుSIGKILL మరియుSIGSTOP పట్టుకోవడం, నిరోధించడం లేదా నిర్లక్ష్యం చేయడం సాధ్యం కాదు.

తరువాత POSIX.1 ప్రమాణంలో లేని సంకేతాలు కాని SUSv2 మరియు SUSV3 / POSIX 1003.1-2001 లో వివరించబడ్డాయి.

సిగ్నల్విలువయాక్షన్వ్యాఖ్య
SIGPOLL టర్మ్ఘోరమైన సంఘటన (Sys V). SIGIO యొక్క పర్యాయపదం
SIGPROF27,27,29టర్మ్ప్రొఫైలింగ్ టైమర్ గడువు ముగిసింది
SIGSYS12,-,12కోర్రొటీన్ (SVID) కు చెడ్డ వాదన
SIGTRAP5కోర్ట్రేస్ / బ్రేక్ పాయింట్ ట్రాప్
SIGURG16,23,21IGNసాకెట్ మీద అత్యవసర పరిస్థితి (4.2 BSD)
SIGVTALRM26,26,28టర్మ్వర్చువల్ అలారం గడియారం (4.2 BSD)
SIGXCPU24,24,30కోర్CPU సమయ పరిమితిని మించిపోయింది (4.2 BSD)
SIGXFSZ25,25,31కోర్ఫైల్ పరిమాణం పరిమితి మించిపోయింది (4.2 BSD)

అప్ మరియు లినక్స్ 2.2 సహా, కోసం డిఫాల్ట్ ప్రవర్తనSIGSYS, SIGXCPU, SIGXFSZ, మరియు (SPARC మరియు MIPS కాకుండా నిర్మాణాల్లో)SIGBUS (కోర్ డంప్ లేకుండా) ప్రక్రియ ముగించడమే. (కొన్ని ఇతర యునిసెస్ కోసం డిఫాల్ట్ చర్యSIGXCPU మరియుSIGXFSZ కోర్ డంప్ లేకుండా ప్రక్రియ రద్దు చేయడం.) Linux 2.4 ఈ సంకేతాలకు POSIX 1003.1-2001 అవసరాలకు అనుగుణంగా, ప్రాసెస్ను కోర్ డంప్తో ముగించింది.

తదుపరి అనేక ఇతర సంకేతాలు.

సిగ్నల్విలువయాక్షన్వ్యాఖ్య
SIGEMT7,-,7టర్మ్
SIGSTKFLT-,16,-టర్మ్కాప్రోసెసెసర్పై స్టాక్ తప్పు (ఉపయోగించనిది)
SIGIO23,29,22టర్మ్ఇప్పుడు సాధ్యమైన I / O (4.2 BSD)
SIGCLD-,-,18IGNSIGCHLD కోసం పర్యాయపదం
SIGPWR29,30,19టర్మ్పవర్ వైఫల్యం (సిస్టమ్ V)
SIGINFO29,-,- SIGPWR కోసం పర్యాయపదం
SIGLOST-,-,-టర్మ్ఫైల్ లాక్ కోల్పోయింది
SIGWINCH28,28,20IGNవిండో పునఃపరిమాణం సిగ్నల్ (4.3 BSD, సన్)
SIGUNUSED-,31,-టర్మ్ఉపయోగించని సిగ్నల్ (SIGSYS ఉంటుంది)

(సిగ్నల్ 29 ఉందిSIGINFO / SIGPWR ఆల్ఫాలో కానీSIGLOST ఒక పిచ్చుక మీద.)

SIGEMT POSIX 1003.1-2001 లో పేర్కొనబడలేదు, కానీ చాలావరకూ ఇతర ఐనస్ లలో ఎన్నడూ కనిపించదు, ఇక్కడ దాని డిఫాల్ట్ చర్య ప్రక్రియను కోర్ డంప్తో ముగించడానికి సాధారణంగా ఉంటుంది.

SIGPWR (ఇది POSIX 1003.1-2001 లో పేర్కొనబడలేదు) సాధారణంగా కనిపించే ఆ ఇతర ఐనస్లలో డిఫాల్ట్గా విస్మరించబడుతుంది.

SIGIO (ఇది POSIX 1003.1-2001 లో పేర్కొనబడలేదు) అనేక ఇతర యూనిట్లలో డిఫాల్ట్గా విస్మరించబడుతుంది.

రియల్ టైమ్ సిగ్నల్స్

POSIX.4 రియల్ టైమ్ ఎక్స్టెన్షన్స్ (మరియు ఇప్పుడు POSIX 1003.1-2001 లో చేర్చబడినది) లో వాస్తవంగా నిర్వచించినట్లు లైనక్స్ నిజ-సమయ సంకేతాలను మద్దతిస్తుంది. లైనక్స్ 32 రియల్-టైమ్ సంకేతాలను మద్దతు ఇస్తుంది, 32 నుండి (SIGRTMIN) నుండి 63 (SIGRTMAX). (ప్రోగ్రామ్లు నోటిఫికేషన్ను ఉపయోగించి నిజ-సమయ సంకేతాలను ఎల్లప్పుడూ సూచించాలిSIGRTMIN+ n, నిజ-సమయ సంకేతాల సంఖ్యల పరిధిలో యూనిస్లలో తేడా ఉంటుంది.)

ప్రామాణిక సిగ్నల్స్ కాకుండా, నిజ-సమయ సంకేతాలకు ముందుగా నిర్వచించని అర్థాలు లేవు: వాస్తవ-సమయ సంకేతాల సమితి అప్లికేషన్-నిర్వచించిన ప్రయోజనాల కోసం ఉపయోగించబడుతుంది. (గమనిక, అయితే, LinuxThreads అమలు మొదటి మూడు వాస్తవ సమయ సంకేతాలను ఉపయోగిస్తుంది.)

అప్రజాకరించబడని నిజ-సమయ సిగ్నల్ కోసం డిఫాల్ట్ చర్య స్వీకరణ ప్రక్రియను రద్దు చేయడం.

రియల్-టైమ్ సిగ్నల్స్ క్రింది వాటి ద్వారా వేరు చేయబడ్డాయి:

  1. వాస్తవ సమయ సంకేతాల యొక్క అనేక చోట్ల క్యూలు చేయవచ్చు. దీనికి విరుద్ధంగా, ఆ సంకేతం ప్రస్తుతం బ్లాక్ చేయబడినప్పుడు ఒక ప్రామాణిక సిగ్నల్ యొక్క అనేక చోట్ల పంపిణీ చేయబడితే, అప్పుడు ఒక ఉదాహరణ మాత్రమే క్యూలో ఉంటుంది.
  2. సిగ్నల్ ను ఉపయోగించి పంపినట్లయితేsigqueue(2), ఒక సహసంబంధ విలువ (ఒక పూర్ణాంకం లేదా ఒక పాయింటర్ గాని) సిగ్నల్ తో పంపవచ్చు. ఈ సిగ్నల్ ను ఉపయోగించి స్వీకరించే ప్రక్రియ ఒక హ్యాండ్లర్ను స్థాపించినట్లయితేSA_SIGACTION కు పతాకంsigaction(2) అప్పుడు ఈ డేటాను పొందవచ్చు si_value ఫీల్డ్ siginfo_t నిర్మాణం రెండో వాదనను హ్యాండ్లర్గా ఆమోదించింది. ఇంకా, ది si_pid మరియు si_uid సిగ్నల్ పంపే ప్రక్రియ యొక్క PID మరియు రియల్ యూజర్ ఐడిని పొందటానికి ఈ నిర్మాణం యొక్క ఖాళీలను ఉపయోగించవచ్చు.
  3. రియల్ టైమ్ సిగ్నల్స్ హామీ ఇవ్వబడిన క్రమంలో పంపిణీ చేయబడతాయి. అదే రకానికి చెందిన బహుళ రియల్-టైమ్ సిగ్నల్స్ వారు పంపిన క్రమంలో పంపిణీ చేయబడతాయి. విభిన్న నిజ-సమయ సంకేతాలు ఒక ప్రాసెస్కు పంపినట్లయితే, అవి తక్కువ-సంఖ్య సిగ్నల్తో ప్రారంభించబడతాయి. (అంటే, తక్కువ సంఖ్యలో ఉన్న సంకేతాలు అత్యధిక ప్రాధాన్యత కలిగివున్నాయి.)

ఒక ప్రాసెస్ కోసం ప్రామాణిక మరియు వాస్తవ సమయ సంకేతాలను రెండింటిలో పెండింగ్లో ఉంటే, POSIX దీన్ని నిర్దేశించనిదిగా విడుదల చేస్తుంది, ఇది మొదటిసారి పంపిణీ చేయబడుతుంది. లైనక్స్, అనేక ఇతర ఆచరణల లాగా, ఈ సందర్భంలో ప్రామాణిక సంకేతాలకు ప్రాధాన్యత ఇస్తుంది.

POSIX ప్రకారం, ఒక ప్రోగ్రాంకు వరుసలో ఉండటానికి ఒక అమలు కనీసం _POSIX_SIGQUEUE_MAX (32) రియల్-టైమ్ సిగ్నల్స్ను అనుమతించాలి. అయినప్పటికీ, ఒక్కో-ప్రాసెస్ పరిమితిని ఉంచకుండా, లైనక్స్ అన్ని ప్రక్రియలకు క్వీటేడ్ రియల్-టైమ్ సంకేతాల సంఖ్యపై సిస్టమ్-విస్తృత పరిమితిని విధించింది.

ఈ పరిమితిని చూడవచ్చు (మరియు అధికారాలతో) ద్వారా మార్చబడింది / Proc / sys / kernel / rtsig-max దాఖలు. సంబంధిత ఫైలు, / Proc / sys / kernel / rtsig-max , నిజ-సమయ సంకేతాలు ప్రస్తుతం ఎలా క్యూలో ఉన్నాయో తెలుసుకోవడానికి ఉపయోగించవచ్చు.

కలుసుకోవడం

POSIX.1

ముఖ్యమైన: ఉపయోగించడానికి మనిషి కమాండ్ ( % మనిషి ) మీ కంప్యుటర్లో ఎలా ఉపయోగించాలో చూడడానికి.