كيف تقتل عملية تعمل على منفذ معين في Linux؟

سئل على ٢٠ يوليو ٢٠١٢  ·  تمت مشاهدة 1.4M مرة  ·  مصدر

veer7 picture
في ٢٠ يوليو ٢٠١٢

حاولت إغلاق القط باستخدام ./shutdown.sh من دليل tomcat /bin . لكن وجد أن الخادم لم يتم إغلاقه بشكل صحيح. وبالتالي لم أتمكن من إعادة التشغيل
قطتي تعمل على المنفذ 8080 .

أريد أن أقتل عملية القط التي تعمل على 8080 . أرغب أولاً في الحصول على قائمة العمليات التي تعمل على منفذ معين (8080) من أجل تحديد العملية التي تريد إيقافها.

الإجابات

nudzo picture
في ٢١ يوليو ٢٠١٢
1067

سيطبع هذا fuser 8080/tcp معرف العملية المرتبط بهذا المنفذ.

وهذا fuser -k 8080/tcp سيقتل هذه العملية.

يعمل على نظام Linux فقط. الأكثر عالمية هو استخدام lsof -i4 (أو 6 لـ IPv6).

Franck Dernoncourt picture
في ١٥ سبتمبر ٢٠١٥
795

لسرد أي عملية الاستماع إلى المنفذ 8080:

lsof -i:8080

لقتل أي عملية الاستماع إلى المنفذ 8080:

kill $(lsof -t -i:8080)

أو بعنف أكثر:

kill -9 $(lsof -t -i:8080)

( -9 يتطابق و SIGKILL - terminate immediately/hard kill إشارة: انظر قائمة الإشارات قتل و ما هو الغرض من الخيار -9 في الأمر قتل؟ إذا لم يتم تحديد إشارة إلى. kill ، يتم إرسال إشارة TERM الملقب بـ -15 أو soft kill ، والتي لا تكفي أحيانًا لقتل العملية.).

veer7 picture
في ٢٠ يوليو ٢٠١٢
297

استخدم الأمر

 sudo netstat -plten |grep java

استخدام grep java كـ tomcat يستخدم java كعملياتهم.

سيعرض قائمة العمليات برقم المنفذ ومعرف العملية

tcp6       0      0 :::8080                 :::*                    LISTEN      
1000       30070621    16085/java

الرقم قبل /java هو معرف العملية. استخدم الآن الأمر kill لإيقاف العملية

kill -9 16085

يشير -9 إلى أن العملية ستقتل بقوة.

Gal Bracha picture
في ٢٢ يناير ٢٠١٧
192

خط واحد لقتل الاستماع فقط على منفذ معين:

kill -9 $(lsof -t -i:3000 -sTCP:LISTEN)

Kop4lyf picture
في ١١ فبراير ٢٠١٥
123

يمكنك استخدام الأمر lsof. دع رقم المنفذ مثل هنا هو 8090

lsof -i:8090

يقوم هذا الأمر بإرجاع قائمة بالعمليات المفتوحة على هذا المنفذ.

شيء مثل…

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
ssh 75782 eoin 5u IPv6 0x01c1c234 0t0 TCP localhost:8090 (LISTEN)

لتحرير المنفذ ، قم بقتل العملية باستخدامه (معرف العملية هو 75782) ...

kill -9 75782

هذا واحد يعمل لي هذا هو الرابط من المنشور الأصلي: الرابط

Mahfuz picture
في ١٨ مايو ٢٠١٨
75

إذا كنت تريد إنهاء عملية تعمل على المنفذ رقم 8080 ، فأنت بحاجة أولاً إلى العثور على رقم تعريف عملية المنفذ 8080 (PID) ثم قم بإيقافها. قم بتشغيل الأمر التالي للعثور على رقم المنفذ 8080 PID:

sudo lsof -t -i:8080

هنا،

  • sudo - أمر لطلب امتياز المسؤول (معرف المستخدم وكلمة المرور).
  • lsof - قائمة الملفات (تستخدم أيضًا لسرد العمليات ذات الصلة)
  • -t - إظهار معرف العملية فقط
  • -i - عرض العملية المتعلقة باتصالات الإنترنت فقط
  • : 8080 - عرض العمليات في رقم المنفذ هذا فقط

لذلك يمكنك الآن بسهولة قتل PID الخاص بك باستخدام الأمر التالي:

sudo kill -9 <PID>

هنا،

  • قتل - الأمر لقتل العملية
  • -9 - بقوة

يمكنك استخدام أمر واحد لقتل عملية على منفذ معين باستخدام الأمر التالي:

sudo kill -9 $(sudo lsof -t -i:8080)

لمزيد من المعلومات ، يمكنك مشاهدة الرابط التالي كيفية إنهاء

Berkay Kırmızıoğlu picture
في ٤ ديسمبر ٢٠١٩
72

أفضل طريقة لقتل جميع العمليات على منفذ معين ؛

kill -9 $(sudo lsof -t -i:8080)
dlmeetei picture
في ٢٦ نوفمبر ٢٠١٩
52

بطانة واحدة

kill -9 $(lsof -t -i tcp:8080)

شرح هنا: استخدم مزيجًا من lsof و kill

[email protected]:~# lsof -i tcp:8080
COMMAND   PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
java    23672 sine  238u  IPv6 3028222      0t0  TCP localhost:http-alt (LISTEN)

حدد pid واستخدم kill

kill 23672
Brian Peterson picture
في ٢٧ سبتمبر ٢٠١٣
42

يؤدي هذا إلى طباعة معرفات العملية لكل شيء يعمل على <port_number> :

fuser -n tcp <port_number> 

يقوم أيضًا بطباعة بعض الأشياء إلى stderr ، لذلك:

fuser -n tcp <port_number> 2> /dev/null

يمكننا بعد ذلك توفير معرّفات العملية هذه للأمر kill :

sudo kill $(fuser -n tcp <port_number> 2> /dev/null)

يمكنك أيضًا وضع هذا في دالة إذا كنت تفعل ذلك كثيرًا:

function killport() {
    sudo kill $(fuser -n tcp $1 2> /dev/null)
}
Sanjay s. picture
في ١٢ أغسطس ٢٠١٤
35

لمعرفة رقم تعريف الخدمة الذي يعمل على منفذ معين:

netstat -tulnap | grep :*port_num*

سوف تحصل على وصف لهذه العملية. الآن استخدم القتل أو القتل -9 pid. قتل بسهولة.

على سبيل المثال

netstat -ap | grep :8080

tcp6       0      0 :::8080       :::*    LISTEN      1880/java 

الآن:

kill -9 1880

تذكر تشغيل جميع الأوامر كـ root