پرش به مطلب اصلی

توقف کانتینرها

دستور kill برای ارسال سیگنال‌های POSIX به یک کانتینر استفاده می‌شود. به‌صورت پیش‌فرض سیگنال SIGKILL (9) ارسال می‌شود که باعث توقف فوری کانتینر می‌شود. همچنین می‌توانید فقط پردازش‌های داخل کانتینر را بدون متوقف‌کردن خود کانتینر خاتمه دهید.


🧩 دستور کلی

k3 container kill [options] <containerId> [signal]
  • containerId: شناسه کانتینری که قصد ارسال سیگنال به آن دارید.
  • signal: (اختیاری) نام یا شماره سیگنالی که می‌خواهید ارسال کنید (پیش‌فرض: SIGKILL).

⚙️ گزینه‌ها (Options)

گزینه کوتاهگزینه بلندتوضیح
-t--time <seconds>مدت زمان انتظار قبل از ارسال سیگنال (بر حسب ثانیه)
-a--allفقط تمام پردازش‌های داخل کانتینر را متوقف کن، کانتینر باقی می‌ماند
-h--helpنمایش راهنمای کامل دستور

📥 مثال‌های کاربردی

✅ ارسال سیگنال پیش‌فرض (SIGKILL) به یک کانتینر:

k3 container kill 08a79d22

✅ ارسال سیگنال مشخص (مثلاً SIGTERM) به یک کانتینر:

k3 container kill 08a79d22 SIGTERM

✅ ارسال سیگنال با تأخیر 5 ثانیه:

k3 container kill --time 5 08a79d22

✅ متوقف‌کردن تمام پردازش‌های داخل کانتینر بدون توقف خود کانتینر:

k3 container kill --all 08a79d22

نکات مهم

اگر سیگنال مشخص نکنید، سیگنال پیش‌فرض SIGKILL (شماره 9) ارسال می‌شود.

اگر از گزینه --all استفاده کنید، فقط پردازش‌های داخل کانتینر متوقف می‌شوند و خود کانتینر فعال باقی می‌ماند.

گزینه --time برای زمانی مناسب است که می‌خواهید قبل از ارسال سیگنال، مدت زمانی صبر شود.


تست جامع

#!/bin/bash

echo "Starting k3 container kill tests..."

echo "[1] Sending default signal (SIGKILL) to container 08a79d22"
sudo k3 container kill 08a79d22
echo

echo "[2] Sending SIGTERM to container 08a79d22"
sudo k3 container kill 08a79d22 SIGTERM
echo

echo "[3] Sending signal to container 08a79d22 with 5-second delay"
sudo k3 container kill --time 5 08a79d22
echo

echo "[4] Killing all processes inside container 08a79d22 without stopping it"
sudo k3 container kill --all 08a79d22
echo

echo "All kill tests completed."


🆘 دریافت راهنما

برای مشاهده‌ی راهنمای کامل این دستور در خط فرمان:

k3 container kill -h