یک مرجع قابل مرور برای هر سیگنال استاندارد فرایند POSIX/Linux — از SIGHUP تا SIGSYS — که شماره هر سیگنال، عمل پیش‌فرض آن (Term، Core، Ign، Stop، Cont)، قابل گرفتن بودن، علت بروز و کد خروج شل متناظر (128+N) را نشان می‌دهد. در مرورگر، رایگان.

هر سیگنال استاندارد فرایند POSIX/Linux، توضیح‌داده‌شده. همه‌چیز در مرورگر شما از یک مرجع داخلی اجرا می‌شود — چیزی به سرور ارسال نمی‌شود.

سیگنال شماره عمل پیش‌فرض قابل گرفتن توضیح کد خروج
هیچ سیگنالی با جستجوی شما مطابقت ندارد.
یک نام یا شماره دیگر را امتحان کنید — مثلاً SIGTERM، 11 یا segmentation.
علاوه بر این‌ها، لینوکس سیگنال‌های بلادرنگ SIGRTMIN تا SIGRTMAX (معمولاً سیگنال‌های 34–64) را فراهم می‌کند. این‌ها معنای از پیش تعریف‌شده ندارند و با ترتیب تضمین‌شده تحویل می‌شوند — برنامه‌ها هدف خود را به آن‌ها اختصاص می‌دهند.
شماره‌های سیگنال نشان‌داده‌شده پیش‌فرض‌های ABI در x86/ARM هستند. چند سیگنال روی معماری‌های دیگر شماره‌های متفاوتی دارند (مثلاً Alpha، MIPS و SPARC)، پس همیشه در اسکریپت‌ها نام نمادین (SIGKILL) را به شمارهٔ خام (9) ترجیح دهید.

درباره سیگنال‌های لینوکس

مرجع سیگنال‌های لینوکس هر سیگنال استاندارد فرآیند POSIX/لینوکس را، از SIGHUP تا SIGSYS، در یک جدول قابل‌مرور فهرست می‌کند. هر ردیف شماره سیگنال، عمل پیش‌فرض آن (Terminate، Core dump، Ignore، Stop یا Continue)، اینکه آیا یک فرآیند می‌تواند آن را بگیرد، آنچه معمولاً آن را برمی‌انگیزد، و کد خروج شل (128 + N) که هنگام مرگ فرآیند از آن می‌بینید را نشان می‌دهد.

آن ستون کد خروج حلقه‌ای را می‌بندد که توسعه‌دهندگان هر روز با آن روبه‌رو می‌شوند: کانتینری که با کد ۱۳۷ خارج می‌شود توسط SIGKILL (۹) کشته شده، یک خرابی با کد ۱۳۹ یک نقض تقسیم‌بندی ناشی از SIGSEGV (۱۱) بوده، و یک خاموشی تمیز با کد ۱۴۳ از SIGTERM (۱۵) آمده است. جست‌وجو بر اساس نام، شماره، کد خروج یا معنا کار می‌کند، پس می‌توانید از هر سرنخی که دارید شروع کنید.

دو پانویس بخش‌هایی را پوشش می‌دهند که مراجع معمولاً از آن‌ها می‌گذرند: سیگنال‌های زمان‌واقعی SIGRTMIN تا SIGRTMAX، که معنای از پیش تعریف‌شده‌ای ندارند و به‌ترتیب تضمین‌شده تحویل داده می‌شوند، و هشدار معماری؛ چند شماره سیگنال در Alpha، MIPS و SPARC متفاوتند، به همین دلیل اسکریپت‌ها باید از نام‌های نمادین استفاده کنند. همه چیز در مرورگر شما اجرا می‌شود.

نحوه استفاده از سیگنال‌های لینوکس

  1. بر اساس نام (SIGKILL)، شماره (۹)، کد خروج شل (۱۳۷) یا کلیدواژه‌ای مانند «segmentation» جست‌وجو کنید.
  2. ردیف را بخوانید: شماره، عمل پیش‌فرض، اینکه آیا قابل‌گرفتن است، و چه چیزی آن را برمی‌انگیزد.
  3. از ستون کد خروج برای برگرداندن وضعیت 128+N شل به سیگنالی که فرآیند را کشته استفاده کنید.
  4. نام سیگنال یا کد خروج را با دکمه‌های کپی ردیف کپی کنید.
  5. اگر اسکریپت‌های قابل‌حمل می‌نویسید، یادداشت‌های سیگنال‌های زمان‌واقعی و شماره‌گذاری خاص هر معماری را بررسی کنید.

سوالات متداول

SIGTERM (۱۵) مؤدبانه از یک فرآیند می‌خواهد خارج شود؛ قابل‌گرفتن است، پس فرآیند ممکن است ابتدا پاک‌سازی کند. SIGKILL (۹) بلافاصله در سطح هسته خاتمه می‌دهد و نمی‌توان آن را گرفت، مسدود یا نادیده گرفت. همیشه پیش از توسل به kill -9، SIGTERM را امتحان کنید.

SIGKILL و SIGSTOP. هسته هر دو را مستقیماً اعمال می‌کند، پس هیچ handlerی نمی‌تواند آن‌ها را رهگیری کند؛ SIGKILL همیشه فرآیند را خاتمه می‌دهد و SIGSTOP همیشه آن را معلق می‌کند.

وقتی فرآیندی توسط سیگنالی کشته می‌شود، شل ۱۲۸ به‌علاوه شماره سیگنال را گزارش می‌دهد. پس ۱۳۹ همان ۱۲۸ + ۱۱ است: فرآیند از SIGSEGV، یک نقض تقسیم‌بندی، مرده است. جدول این کد خروج را کنار هر سیگنال کشنده فهرست می‌کند.

SIGRTMIN تا SIGRTMAX؛ معمولاً شماره‌های ۳۴ تا ۶۴ در لینوکس. برخلاف سیگنال‌های استاندارد، معنای از پیش تعریف‌شده‌ای ندارند و به‌ترتیب تضمین‌شده صف‌بندی و تحویل داده می‌شوند، پس اپلیکیشن‌ها اهداف خودشان را به آن‌ها اختصاص می‌دهند.

چون چند شماره سیگنال بین معماری‌های پردازنده مانند Alpha، MIPS و SPARC متفاوت است. نام نمادین — kill -TERM به‌جای kill -15 — همه‌جا معنای یکسانی دارد، پس انتخاب قابل‌حمل همان است.

بله، کاملاً رایگان. جدول کامل در صفحه گنجانده شده و همه جست‌وجو و کپی در مرورگر شما رخ می‌دهد.

اشتراک‌گذاری
به کمک نیاز دارید؟
با این ابزار مشکلی پیدا کردید؟ به تیم ما اطلاع دهید.
گزارش مشکل

این ابزار رایگان را به وب‌سایت خود اضافه کنید — کد زیر را کپی و جای‌گذاری کنید.