سگنل - لینکس / یونیسی کمانڈ

لینکس POSIX قابل اعتماد سگنل دونوں (اس کے بعد "معیاری سگنل") اور POSIX حقیقی وقت سگنل دونوں کی حمایت کرتا ہے.

سٹینڈرڈ سگنل

لینکس ذیل میں درج معیاری سگنل کی حمایت کرتا ہے. جیسا کہ "ویلیو" کے کالم میں اشارہ کیا گیا ہے، کئی سگنل نمبر فن تعمیر پر منحصر ہیں. (جہاں تین اقدار دیا جاتا ہے، سب سے پہلے عام طور پر الفا اور اسپار کے لئے درست ہے، i386، پی پی سی اور شے کے لئے درمیانی ایک، اور ایم پی کے لئے آخری ایک.

A - اس معنی سے متعلق ہے کہ اسی فن تعمیر پر سگنل غیر حاضر ہے.)

ٹیبل کے "ایکشن" کالم میں اندراجات سگنل کے لئے ڈیفالٹ کارروائی کی وضاحت کرتی ہیں، جیسے کہ:

مدت

عمل کو ختم کرنے کے لئے پہلے سے طے شدہ کارروائی ہے.

جھوٹ

پہلے سے طے شدہ کارروائی سگنل کو نظر انداز کرنے کے لئے ہے.

کور

عمل اور ڈمپ بنیادی ختم کرنے کے لئے پہلے سے طے شدہ کارروائی ہے.

بند کرو

عمل کو روکنے کے لئے پہلے سے طے شدہ کارروائی ہے.

اصل POSIX.1 معیار میں سب سے پہلے سگنل بیان کیے گئے ہیں.

سگنل قدر عمل تبصرہ
یا کنٹرول کے عمل کی موت
SIGINT 2 مدت کی بورڈ سے مداخلت
SIGQUIT 3 کور کی بورڈ سے نکلیں
سگنل 4 کور غیر قانونی ہدایات
سگنل 6 کور حراست سے سگنل کو منسوخ کریں (3)
SIGFPE 8 کور فلوٹنگ نقطہ استثناء
SIGKILL 9 مدت سگنل کو مار ڈالو
SIGSEGV 11 کور غلط میموری حوالہ
سگنل 13 مدت ٹوٹے ہوئے پائپ: بغیر کسی قارئین کے ساتھ پائپ لکھیں
SIGALRM 14 مدت الارم سے ٹائمر سگنل (2)
SIGTERM 15 مدت اختتام سگنل
SIGUSR1 30،10،16 مدت صارف کی وضاحت کردہ سگنل 1
SIGUSR2 31،12،17 مدت صارف کی وضاحت کردہ سگنل 2
SIGCHLD 20،17،18 جھوٹ بچے کو روک دیا یا ختم کر دیا گیا
SIGCONT 19،18،25 اگر روک دیا جائے تو جاری رکھیں
SIGSTOP 17،19،23 بند کرو عمل بند کرو
SIGTSTP 18،20،24 بند کرو ٹٹی پر ٹائپ کرو
SIGTTIN 21،21،26 بند کرو پس منظر کے عمل کے لئے ٹیٹی ان پٹ
SIGTTOU 22،22،27 بند کرو پس منظر کے عمل کے لئے ٹیٹی پیداوار

سگنل SIGKILL اور SIGSTOP کو پکڑے نہیں، روک، یا نظر انداز نہیں کیا جا سکتا.

اگلے سگنل POSIX.1 معیار میں نہیں لیکن SUSv2 اور SUSv3 / POSIX 1003.1-2001 میں بیان کردہ.

سگنل قدر عمل تبصرہ
SIGPOLL مدت پولیوبل ایونٹ (سیس وی). SIGIO کے مترادف
SIGPROF 27،27،29 مدت پروفیشنل ٹائمر ختم ہو گیا
سگنل 12، -، 12 کور معمول کے مطابق برا دلیل (SVID)
SIGTRAP 5 کور ٹریس / بریک پوائنٹ نیٹ ورک
سگنل 16،23،21 جھوٹ ساکٹ پر فوری حالت (4.2 بی ایس ڈی)
SIGVTALRM 26،26،28 مدت مجازی الارم گھڑی (4.2 بی ایس ڈی)
SIGXCPU 24،24،30 کور سی پی یو وقت کی حد سے زیادہ حد تک (4.2 بی ایس ڈی)
SIGXFSZ 25،25،31 کور فائل کا سائز حد سے زیادہ ہوگیا (4.2 بی ایس ڈی)

اوپر اور بشمول لینکس 2.2، سگنلس کے لئے ڈیفالٹ رویے، SIGXCPU ، SIGXFSZ ، اور (SPARC اور MIPS کے علاوہ دیگر آرکیٹیکچرز) SIGBUS عمل کو ختم کرنے کے لئے تھا (کور ڈمپ کے بغیر). (کچھ دوسرے ایوارڈز پر SIGXCPU اور SIGXFSZ کے لئے ڈیفالٹ کارروائی یہ ہے کہ پروسیسنگ کو ختم کرنے کے بغیر ڈمپ ڈومین کے بغیر ختم ہوجائیں.) لینکس 2.4 ان سمکس کے لئے POSIX 1003.1-2001 کی ضروریات کو مطابقت دیتا ہے، کور ڈمپ کے ساتھ عمل کو ختم کرنا.

اگلے مختلف دیگر سگنل.

سگنل قدر عمل تبصرہ
سگنل 7، -، 7 مدت
SIGSTKFLT -، 16، - مدت coprocessor پر غلطی (غیر استعمال شدہ)
SIGIO 23،29،22 مدت اب / O اب ممکن ہے (4.2 بی ایس ڈی)
SIGCLD -، -، 18 جھوٹ SIGCHLD کے مترادف ہے
SIGPWR 29،30،19 مدت پاور ناکامی (سسٹم V)
SIGINFO 29، -، - SIGPWR کے لئے ایک مترادف ہے
SIGLOST -، -، - مدت فائل کو کھو دیا گیا ہے
SIGWINCH 28،28،20 جھوٹ ونڈو کا سائز تبدیل کریں (4.3 بی ایس ڈی، سورج)
سائن ان -، 31، - مدت غیر استعمال شدہ سگنل (SIGSYS ہو جائے گا)

(سگنل 29 SIGNAFO / 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 ) سے شمار ہوتی ہے. (پروگراموں کو ہمیشہ سمت سگنلٹائن + این کا استعمال کرکے اصل وقت سگنل کا حوالہ دینا چاہیے، کیونکہ اصلی وقت سگنل کی تعداد کی حد یونیورس میں مختلف ہوتی ہے.)

معیاری سگنل کے برعکس، حقیقی وقت کے سگنل میں کوئی پیش وضاحتی معنی نہیں ہیں: اصلی وقت سگنل کے پورے سیٹ میں درخواست کی وضاحت کے مقاصد کے لئے استعمال کیا جا سکتا ہے. (نوٹ، تاہم، کہ LinuxThreads پر عملدرآمد پہلے سے ہی تین اصلی وقت سگنل کا استعمال کرتا ہے.)

غیر منسلک حقیقی وقت سگنل کے لئے ڈیفالٹ کارروائی وصول کرنے کے عمل کو ختم کرنا ہے.

اصلی وقت سگنل مندرجہ ذیل کی طرف سے ممتاز ہیں:

  1. اصل وقت کے سگنل کے ایک سے زیادہ واقعات کو قطار کیا جا سکتا ہے. اس کے برعکس، اگر ایک سگنل کے ایک سے زیادہ موصول ہونے والے اشارے کو ترسیل دیا جاتا ہے جبکہ اس سگنل کو فی الحال بند کردیا جاتا ہے، تو صرف ایک مثال قطار ہے.
  2. اگر سگنل ساکٹ (2) کا استعمال کرتے ہوئے بھیجا جاتا ہے تو، ایک ملٹی قیمت (یا تو ایک عدد یا ایک پوائنٹر) سگنل کے ساتھ بھیجا جا سکتا ہے. اگر وصول کرنے کے عمل کو اس سگنل کے لئے سگنل کا تعین ہوتا ہے جو ساکیز (2) میں ساکھ گراؤنڈ پرچم کا استعمال کرتے ہوئے اس ڈیٹا کو siginfo_t ڈھانچہ کے سی_اولیو فیلڈ کے ذریعہ اس ڈیٹا کو ہینڈلر کی دوسری دلیل کے طور پر منظور کر سکتے ہیں. اس کے علاوہ، اس ڈھانچے کے si_pid اور si_uid شعبوں کو سگنل بھیجنے کے عمل کی پی آئی ڈی اور حقیقی صارف کی شناخت حاصل کرنے کے لئے استعمال کیا جا سکتا ہے.
  3. ضمانت شدہ آرڈر میں اصلی وقت سگنل فراہم کیے جاتے ہیں. ایک ہی قسم کے ایک سے زیادہ حقیقی سگنل بھیجے گئے حکم میں انہیں بھیج دیا گیا ہے. اگر مختلف اصل وقت سگنل کسی عمل کو بھیجے جائیں تو، وہ سب سے کم تعداد میں سگنل کے ساتھ شروع کردیئے جاتے ہیں. (یعنی، کم سے کم سگنل میں سب سے زیادہ ترجیح ہے.)

اگر دونوں معیاری اور حقیقی وقت سگنل ایک عمل کے لئے انتظار کر رہے ہیں تو، POSIX یہ غیر واضح شدہ چھوڑ دیتا ہے جو سب سے پہلے فراہم کی جاتی ہے. لینکس، بہت سے دیگر عمل درآمد کی طرح، اس صورت میں معیاری سگنل کو ترجیح دیتا ہے.

POSIX کے مطابق، ایک عمل درآمد سے کم از کم _POSIX_SIGQUEUE_MAX (32) حقیقی وقت سگنل کو عمل میں لے جانے کی اجازت دیتا ہے. تاہم، فی پروسیسنگ کی حد کو برقرار رکھنے کے بجائے، لینکس تمام پروسیسنگوں کے لئے قطع نظر حقیقی وقت کے سگنل کی تعداد پر نظام کی حد تک محدود کرتی ہے.

یہ حد دیکھی جاسکتی ہے (اور استحکام کے ساتھ) / proc / sys / kernel / rtsig-max max file کے ذریعہ تبدیل ہوگیا. ایک متعلقہ فائل، / proc / sys / kernel / rtsig-max ، یہ استعمال کرنے کے لئے استعمال کیا جاسکتا ہے کہ کتنے حقیقی سگنل اس وقت قطار میں ہیں.

کنفرمنٹ کرنا

POSIX.1

اہم: انسان کے کمانڈر ( ٪ انسان ) کا استعمال کریں کہ کس طرح کمانڈ آپ کے مخصوص کمپیوٹر پر استعمال کیا جاتا ہے.