| KILL(1) | أوامر المستخدم | KILL(1) |
الاسم
kill - إنهاء عملية
موجز
kill [-إشارة|-s إشارة|-p] [-q قيمة] [-a] [--timeout مللي_ثانية إشارة] [--] PID|PID:_inode_واصف_الملف_|اسم...
kill [-إشارة|-s إشارة] PID|PID:_inode_واصف_الملف_...
kill -l [رقم|0xsigmask] | -L
kill -d معرّف-العملية
الوصف
يُرسل الأمر kill الـ signal المحددة إلى العمليات أو مجموعات العمليات المحددة.
إذا لم تُحدد إشارة، تُرسل إشارة TERM. الإجراء المبدئي لهذه الإشارة هو إنهاء العملية. يُفضل استخدام هذه الإشارة على إشارة KILL (رقم 9)، حيث قد تُثبّت العملية معالجاً لإشارة TERM لتنفيذ خطوات التنظيف قبل الإنهاء بشكل منظم. إذا لم تنتهِ العملية بعد إرسال إشارة TERM، فيمكن حينها استخدام إشارة KILL؛ كُن على علم بأن الإشارة الأخيرة لا يمكن اعتراضها، ولذا لا تمنح العملية المستهدفة الفرصة لإجراء أي تنظيف قبل الإنهاء.
تمتلك معظم الـ صدفات الحديثة أمر kill داخلياً، مع طريقة استخدام مشابهة للأمر الموصوف هنا. تُعد الخيارات --all و --pid و --queue، وإمكانية تحديد العمليات باسم الأمر، امتدادات محلية.
إذا كانت الـ signal هي 0، فلا تُرسل إشارة فعلية، ولكن يظل التحقق من الأخطاء جارياً.
المعطيات
يمكن أن تكون قائمة العمليات المراد إرسال الإشارة إليها خليطاً من الأسماء ومعرّفات العمليات PIDs.
معرّف-العملية
n
0
-1
-n
PID:_inode_واصف_الملف_
اسم
الخيارات
-s، --signal الإشارة
-l، --list [رقم|0xsigmask]
$ ps s $$ UID PID PENDING BLOCKED IGNORED CAUGHT STAT TTY TIME COMMAND 1000 1608069 0000000000000000 0000000000000002 0000000000384000 0000000008013003 Ss pts/44 0:02 zsh $ kill -l 0x0000000000384000 TERM TSTP TTIN TTOU
إذا لم يُعطَ رقم ولا 0xقناع_إشارة، تُسرد جميع أسماء الإشارات. وفي هذه الحالة، تُطبع إشارة واحدة لكل سطر عندما لا يكون المخرج طرفية.
-L، --table
-a، --all
-p، --pid
-r، --require-handler
--verbose
-q، --queue قيمة
--timeout إشارة مللي ثانية
لاحظ أن نظام التشغيل قد يعيد استخدام معرفات العمليات (PIDs) وإن تنفيذ ميزة مماثلة في صدفة باستخدام kill و sleep سيكون عرضة لظروف التسابق حيث قد تُرسل الإشارة اللاحقة إلى عملية مختلفة استخدمت معرف PID مُعاد تدويره.
يمكن تحديد خيار --timeout مرات متعددة: تُرسل الإشارات بالتسلسل مع فترات المهلة المحددة. يمكن دمج خيار --timeout مع خيار --queue.
كمثال، يرسل الأمر التالي الإشارات QUIT و TERM و KILL بالتسلسل وينتظر 1000 مللي ثانية بين إرسال الإشارات:
kill --verbose --timeout 1000 TERM --timeout 1000 KILL \
--signal QUIT 12345
-d، --show-process-state معرّف-العملية
$ kill -d $$ Blocked: INT Ignored: TERM TSTP TTIN TTOU Caught: HUP INT PIPE ALRM CHLD WINCH
-h، --help
-V، --version
حالة الخروج
kill له قيم حالة الخروج التالية:
0
1
64
ملاحظات
على الرغم من أنه من الممكن تحديد معرف الخيط (TID، انظر gettid(2)) لأحد الخيوط في عملية متعددة الخيوط كمعطى لـ kill، إلا أن الإشارة تُوجه مع ذلك إلى العملية (أي كامل مجموعة الخيوط). بمعنى آخر، لا يمكن إرسال إشارة إلى خيط محدد صراحة في عملية متعددة الخيوط. ستُسلم الإشارة إلى خيط مختار عشوائياً في العملية المستهدفة لا يحجب الإشارة. لمزيد من التفاصيل، انظر signal(7) ووصف CLONE_THREAD في clone(2).
توفر صدفات متنوعة أمر kill مدمجاً يُفضل استخدامه بدلاً من الملف التنفيذي kill(1) الموصوف في هذا الدليل. أسهل طريقة لضمان تنفيذ الأمر الموصوف في هذه الصفحة هي استخدام المسار الكامل عند استدعاء الأمر، على سبيل المثال: /bin/kill --version
المؤلفين
Salvatore Valente <svalente@mit.edu>، Karel Zak <kzak@redhat.com>
أُخذت النسخة الأصلية من BSD 4.4.
انظر أيضاً
bash(1)، tcsh(1)، sigaction(2)، kill(2)، sigqueue(3)، signal(7) proc(5) proc_pid_status(5)
التبليغ عن الأخطاء
لتقارير العِلل، استخدم مُتتبع المشكلات https://github.com/util-linux/util-linux/issues.
التوفر
الأمر kill جزء من حزمة util-linux التي يمكن تنزيلها من أرشيف نواة لينكس https://www.kernel.org/pub/linux/utils/util-linux/.
| 2026-05-18 | util-linux 2.42.1 |