خامواره‌ی خاموشی فرآیند سرور

این صفحه نحوه‌ی خاموش کردن یک فرآیند سرور در حال اجرا با استفاده از سیگنال‌ها را معرفی می‌کند.

وقتی فرآیند سرور را با Server.Run(Handler) راه‌اندازی می‌کنید، بلاک می‌شود و منتظر سیگنال‌های ورودی می‌ماند.

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

  • TSTP: این سیگنال به Server می‌گوید که دست به کار کردن با وظایف جدید بزند.
  • TERM یا INT: این سیگنال به Server می‌گوید که پایان یابد (به عبارت دیگر، خاموش شود).

توصیه می‌شود ابتدا سیگنال TSTP را ارسال کنید تا دست به کار کردن با وظایف جدید بزند و منتظر شوید تا تمام وظایف در حال اجرا کامل شوند و سپس به برنامه سیگنال TERM را ارسال کنید تا آن را متوقف کنید.

از دستور kill برای ارسال سیگنال‌ها استفاده کنید.

kill -TSTP  # دست به کار کردن با وظایف جدید را متوقف کنید

kill -TERM  # سرور را خاموش کنید

توجه: اگر سیگنال TERM یا INT بدون ارسال سیگنال TSTP ارسال شود، Server یک زمان‌سنج راه‌اندازی می‌کند و برای 8 ثانیه منتظر می‌ماند تا تمام کارگران کامل شوند (برای سفارشی‌سازی مدت زمان توقف، از تنظیمات ShutdownTime استفاده کنید). اگر در طول این بازه زمانی هیچ کارگری کامل نشده باشد، وظایف به وضعیت در انتظار باز می‌گردند و مجدداً بر روی راه‌اندازی برنامه پردازش می‌شوند.

توجه: در حال حاضر، ویندوز از سیگنال TSTP پشتیبانی نمی‌کند.