លីនុចគាំទ្រទាំងសញ្ញា POSIX អាចជឿទុកចិត្តបាន (ហៅថា "សញ្ញាស្តង់ដារ") និងសញ្ញា POSIX ជាក់ស្តែង។
សញ្ញាស្តង់ដារ
លីនុច គាំទ្រសញ្ញាស្តង់ដាដែលបានរៀបរាប់ខាងក្រោម។ លេខសញ្ញាជាច្រើនគឺអាស្រ័យលើស្ថាបត្យកម្មដែលបានបញ្ជាក់នៅក្នុងជួរឈរ "តម្លៃ" ។ (ដែលតម្លៃបីត្រូវបានផ្តល់តម្លៃទីមួយគឺត្រឹមត្រូវសម្រាប់ alpha និង sparc ដែលជាចំណុចកណ្តាលសម្រាប់ i386, ppc និង sh និងចុងក្រោយសម្រាប់ mips ។
សញ្ញា A មានន័យថាសញ្ញាមិនមានវត្តមានលើស្ថាបត្យកម្មដែលត្រូវគ្នា។
ធាតុនៅក្នុងជួរឈរ "សកម្មភាព" នៃតារាងបញ្ជាក់សកម្មភាពលំនាំដើមសម្រាប់សញ្ញាដូចខាងក្រោម:
រយៈពេល
សកម្មភាពលំនាំដើមគឺបញ្ចប់ដំណើរការ។
Ign
សកម្មភាពលំនាំដើមគឺមិនអើពើសញ្ញា។
ស្នូល
សកម្មភាពលំនាំដើមគឺដើម្បីបញ្ចប់ដំណើរការនិងស្នាមបំលាស់។
បញ្ឈប់
សកម្មភាពលំនាំដើមគឺដើម្បីបញ្ឈប់ដំណើរការ។
ដំបូងសញ្ញាដែលបានពិពណ៌នានៅក្នុងស្តង់ដារ POSIX.1 ដើម។
សញ្ញា | តម្លៃ | សកម្មភាព | មតិយោបល់ |
ឬការស្លាប់នៃដំណើរការត្រួតពិនិត្យ | |||
SIGINT | 2 | រយៈពេល | ផ្អាកពីក្តារចុច |
SIGQUIT | 3 | ស្នូល | ចេញពីក្តារចុច |
SIGIL | 4 | ស្នូល | ការបង្រៀនខុសច្បាប់ |
SIGABRT | 6 | ស្នូល | បញ្ឈប់សញ្ញាពី abort (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 | ស្នូល | អាគុយម៉ង់មិនល្អទៅទម្រង់ការ (SVID) |
SIGTRAP | 5 | ស្នូល | តាមដាន / អន្ទាក់ចំណុចឈប់ |
SIGURG | 16,23,21 | Ign | លក្ខខណ្ឌបន្ទាន់នៅលើរន្ធ (4.2 BSD) |
SIGVTALRM | 26,26,28 | រយៈពេល | នាឡិការោទិ៍និម្មិត (4.2 BSD) |
SIGXCPU | 24,24,30 | ស្នូល | ដែនកំណត់រយៈពេលនៃស៊ីភីយូលើស (4.2 BSD) |
SIGXFSZ | 25,25,31 | ស្នូល | លើសទំហំកំណត់ឯកសារ (4.2 BSD) |
រហូតមកដល់និងរួមបញ្ចូលទាំងលីនុច 2.2 ឥរិយាបថលំនាំដើមសម្រាប់ SIGSYS , SIGXCPU , SIGXFSZ និង (លើស្ថាបត្យកម្មផ្សេងទៀតជាង SPARC និង MIPS) SIGBUS គឺដើម្បីបញ្ចប់ដំណើរការ (ដោយគ្មានស្នូលចាក់សោរ) ។ (នៅលើយូនីធីមួយចំនួនផ្សេងទៀតសកម្មភាពលំនាំដើមសម្រាប់ SIGXCPU និង SIGXFSZ គឺដើម្បីបញ្ចប់ដំណើរការដោយគ្មានស្នូលចាក់សោ។ ) លីនុច 2.4 បំពេញតាមតម្រូវការ POSIX 1003.1-2001 សម្រាប់សញ្ញាទាំងនេះបញ្ចប់ដំណើរការជាមួយស្នូលចាក់សោ។
សញ្ញាផ្សេងៗផ្សេងៗទៀត។
សញ្ញា | តម្លៃ | សកម្មភាព | មតិយោបល់ |
SIGEMT | 7, -, 7 | រយៈពេល | |
SIGSTKFLT | -, 16, - | រយៈពេល | កំហុសជង់លើ coprocessor (មិនប្រើ) |
SIGIO | 23,29,22 | រយៈពេល | ឥឡូវនេះខ្ញុំអាចធ្វើទៅបាន (4.2 BSD) |
SIGCLD | -, -, 18 | Ign | ន័យស្រដៀងសម្រាប់ SIGCHLD |
SIGPWR | 29,30,19 | រយៈពេល | ការបរាជ័យថាមពល (ប្រព័ន្ធ V) |
SIGINFO | 29, -, - | សទិសន័យសម្រាប់ SIGPWR | |
SIGLOST | -, -, - | រយៈពេល | ការចាក់សោឯកសារបាត់បង់ |
SIGWINCH | 28,28,20 | Ign | សញ្ញាប្ដូរទំហំបង្អួច (4.3 BSD, អាទិត្យ) |
SIGUNUSED | -, 31, - | រយៈពេល | សញ្ញាដែលមិនប្រើ (នឹងជា SIGSYS) |
(សញ្ញា 29 គឺ SIGINFO / SIGPWR នៅលើ alpha ប៉ុន្តែ SIGLOST នៅលើ sparc មួយ។ )
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 ប្រើសញ្ញាម៉ោងពិតប្រាកដបីដំបូង។ )
សកម្មភាពលំនាំដើមសម្រាប់សញ្ញាពេលវេលាពិតដែលមិនត្រូវបានដោះស្រាយគឺបញ្ចប់ដំណើរការទទួល។
សញ្ញាពិតប្រាកដត្រូវបានសម្គាល់ដោយ:
- វត្ថុជាច្រើននៃសញ្ញាពិតប្រាកដអាចត្រូវបានរៀបជាជួរ។ ផ្ទុយទៅវិញប្រសិនបើមានវត្ថុជាច្រើននៃសញ្ញាស្តង់ដារត្រូវបានបញ្ជូនខណៈពេលដែលសញ្ញានោះត្រូវបានទប់ស្កាត់នៅពេលនោះមានតែវត្ថុមួយប៉ុណ្ណោះដែលត្រូវបានដាក់ជាជួរ។
- ប្រសិនបើសញ្ញាត្រូវបានផ្ញើដោយប្រើ sigqueue (2) តម្លៃអមជាមួយ (ទាំងចំនួនគត់ឬព្រួញ) អាចត្រូវបានផ្ញើជាមួយសញ្ញា។ ប្រសិនបើដំណើរការទទួលកំណត់អ្នកដោះស្រាយបញ្ហានេះដោយប្រើទង់ SA_SIGACTION ទៅ សញ្ញា (2) បន្ទាប់មកវាអាចទទួលបានទិន្នន័យនេះតាមរយៈវាល si_invalue នៃរចនាសម្ព័ន្ធ siginfo_t ដែលបានអនុម័តជាអាគុយម៉ង់ទីពីរទៅនឹង handler ។ លើសពីនេះទៀតវាល si_pid និង si_uid នៃរចនាសម្ព័ន្ធនេះអាចត្រូវបានប្រើដើម្បីទទួលបាន PID និងលេខសម្គាល់អ្នកប្រើពិតនៃដំណើរការដែលបញ្ជូនសញ្ញា។
- សញ្ញាពិតប្រាកដត្រូវបានផ្តល់ជូនតាមលំដាប់លក្ខណ៍អក្សរធានា។ សញ្ញាជាក់ស្តែងច្រើនប្រភេទនៃប្រភេទដូចគ្នាត្រូវបានបញ្ជូនតាមលំដាប់ដែលពួកគេត្រូវបានបញ្ជូន។ ប្រសិនបើសញ្ញាម៉ោងពិតប្រាកដផ្សេងៗគ្នាត្រូវបានផ្ញើទៅដំណើរការមួយពួកគេត្រូវបានបញ្ជូនដោយចាប់ផ្តើមដោយសញ្ញាទាបបំផុត។ (ជាឧទាហរណ៍សញ្ញាដែលមានលេខទូរស័ព្ទមានអាទិភាពខ្ពស់បំផុត។ )
ប្រសិនបើសញ្ញាស្តង់ដារនិងពេលវេលាពិតមិនទាន់ត្រូវបានដំណើការសម្រាប់ដំណើរការណាមួយ POSIX ទុកឱ្យវាមិនច្បាស់លាស់ដែលត្រូវបានបញ្ជូនជាមុនសិន។ លីនុចក៏ដូចជាការអនុវត្តផ្សេងៗជាច្រើនទៀតផ្តល់អាទិភាពដល់សញ្ញាស្តង់ដារក្នុងករណីនេះ។
យោងទៅតាម POSIX ការអនុវត្តគួរតែអនុញ្ញាតយ៉ាងហោចណាស់ _POSIX_SIGQUEUE_MAX (32) សញ្ញាសញ្ញាពេលវេលាដែលត្រូវបានតម្រៀបក្នុងដំណើរការ។ ទោះជាយ៉ាងណាក៏ដោយជាជាងដាក់កម្រិតក្នុងមួយដំណើរការលីនុចកំណត់នូវដែនកំណត់ប្រព័ន្ធទាំងមូលលើចំនួនសញ្ញាបង្ហាញពេលវេលាពិតៗសម្រាប់ដំណើរការទាំងអស់។
ដែនកំណត់នេះអាចត្រូវបានមើល (និងដោយមានសិទ្ធិ) បានផ្លាស់ប្ដូរតាមរយៈឯកសារ / proc / sys / kernel / rtsig-max ។ ឯកសារពាក់ព័ន្ធ / proc / sys / kernel / rtsig-max អាចត្រូវបានប្រើដើម្បីស្វែងយល់ថាតើមានសញ្ញាម៉ោងពិតប្រាកដប៉ុន្មានត្រូវបានដាក់ជាជួរ។
គោរពតាម
POSIX.1
សំខាន់: ប្រើពាក្យបញ្ជា man ( % man ) ដើម្បីមើលពីរបៀបប្រើពាក្យបញ្ជាលើកុំព្យូទ័រជាក់លាក់របស់អ្នក។