كيفية إنهاء عملية Linux باستخدام رقم المنفذ


هل سبق لك أن واجهت موقفًا حيث تحتاج إلى إيقاف عملية يتم تشغيلها على منفذ معين على جهاز Linux الخاص بك؟

قد تشعر بالقلق من أن التطبيق الذي تقوم بتشغيله يسيء العمل أو يستنزف موارد الشبكة أو طاقة وحدة المعالجة المركزية المحلية. يمكن أن يشكل مثل هذا التطبيق تهديدًا أمنيًا تريد القضاء عليه.

مهما كان السبب، يمكنك استخدام أوامر fuserوlsofوnetstatمن الوحدة الطرفية (جنبًا إلى جنب مع kill) لمساعدتك في العثور على أي عملية Linux وإيقافها باستخدام رقم المنفذ. ستعمل هذه الأوامر على معظم أنظمة تشغيل Linux، بما في ذلك Ubuntu.

كيفية إنهاء عملية Linux باستخدام أمر المصهر

إحدى أسهل الطرق لإيقاف عملية ما باستخدام رقم المنفذ هي استخدام أمر المصهر. يمكن لهذا أمر محطة لينكس سرد أو إنهاء العمليات التي تصل إلى الملفات أو المقابس. إذا كان التطبيق يعمل بنشاط على الشبكة (وبالتالي يستخدم منفذًا مفتوحًا)، فمن المحتمل أنه يقوم بأحد هذين الأمرين.

قبل المتابعة، ستحتاج إلى التأكد من أنك مرتاح لاستخدام محطة سطر الأوامر على جهاز الكمبيوتر الشخصي الذي يعمل بنظام التشغيل Linux.

لسرد العمليات التي تستخدم رقم المنفذ باستخدام المصهر، يمكنك استخدام الصيغة التالية:

منفذ بروتوكول المصهر -n

في هذا المثال، يمكن أن يكون البروتوكولهو tcpأو udp، بينما يكون portهو رقم المنفذ الذي تريده للتأكد. على سبيل المثال، لمعرفة العمليات التي تستخدم منفذ TCP 80، يمكنك تشغيل:

المصهر -n tcp 80

سيؤدي هذا إلى طباعة معرفات العملية (PIDs) للعمليات التي تستخدم هذا المنفذ.

لإيقاف هذه العمليات، يمكنك إضافة خيار -kإلى fuser. سيؤدي هذا إلى إرسال إشارة SIGTERM إلى كل عملية، وتطلب منهم الإنهاء بأمان. على سبيل المثال:

المصهر -k -n tcp 80

سيؤدي هذا إلى إنهاء كافة العمليات التي تستخدم منفذ TCP رقم 80.

إذا لم تستجب بعض العمليات لـ SIGTERM، فيمكنك استخدام -KILLبدلاً من -k. سيؤدي هذا إلى إرسال إشارة إنهاء (SIGKILL)، والتي يمكن أن تساعد في إجبار العمليات الجارية حاليًا التي حددتها على الإنهاء فورًا. ومع ذلك، قد يتسبب هذا في فقدان البيانات أو تلفها، لذا استخدمها بحذر. على سبيل المثال:.

المصهر -KILL -n tcp 80

سيؤدي هذا إلى إنهاء كافة العمليات التي تستخدم منفذ TCP 80 بقوة. إذا واجهت أية مشكلات، فقم بتشغيل هذه الأوامر كمستخدم متميز (باستخدام الأمر sudo) أو باستخدام المستخدم الجذربدلاً من ذلك.

كيفية إيقاف عملية Linux باستخدام الأمر lsof

هناك طريقة أخرى لإيقاف عملية باستخدام رقم منفذ على جهاز كمبيوتر يعمل بنظام التشغيل Linux وهي استخدام الأمرlsof. يمكن لهذا الأمر سرد الملفات والمآخذ المفتوحة على نظامك.

لسرد العمليات التي تستخدم رقم منفذ محدد، يمكنك استخدام الصيغة التالية:

lsof -i البروتوكول:المنفذ

كما كان من قبل، يمكن أن يكون البروتوكولهو tcpأو udp، في حين أن portهو رقم المنفذ الذي تريد توصيله يفحص. على سبيل المثال، لمعرفة العمليات التي تستخدم منفذ TCP 53 (يستخدم عادةً لطلبات DNS)، يمكنك تشغيل هذا الأمر:

lsof -i tcp:53

سيؤدي هذا إلى طباعة بعض المعلومات حول كل عملية تستخدم ذلك المنفذ، بما في ذلك معرف المنتج (PID) الخاص بها.

لإيقاف هذه العمليات، يمكنك استخدام الخيار-tمعlsof. سيؤدي هذا إلى طباعة معرفات العمليات فقط دون أي معلومات أخرى. يمكنك بعد ذلك توجيه هذا الإخراج إلى الأمر killباستخدام أي خيار إشارة. على سبيل المثال:

اقتل $(lsof -t -i tcp:53)

سيؤدي هذا إلى إرسال إشارات SIGTERM (الافتراضي) إلى كافة العمليات التي تستخدم منفذ TCP رقم 53.

إذا لم تستجب بعض العمليات لإشارات SIGTERM كما كان من قبل، فيمكنك استخدام -9بدلاً من لا شيء بعد kill. سيؤدي هذا إلى إرسال إشارات SIGKILL كما كان من قبل، مما يجبرها على الإنهاء فورًا ولكن قد يتسبب أيضًا في فقدان البيانات أو تلفها. على سبيل المثال:

قتل -9 $(lsof -t -i tcp:53)

سيؤدي هذا إلى إرسال إشارات SIGKILL (الافتراضي) إلى كافة العمليات التي تستخدم منفذ TCP رقم 53.

كيفية إنهاء عملية Linux باستخدام الأمر netstat

يمكنك أيضًا استخدام الأمر netstatلتتبع العمليات الجارية على جهاز الكمبيوتر الشخصي الذي يعمل بنظام التشغيل Linux باستخدام منافذ الشبكة النشطة والمفتوحة. يتيح لك netstat عرض اتصالات الشبكة والإحصائيات على نظامك، مما يسمح لك بتحديد العمليات التي بها مشكلات.

لسرد العمليات التي تستخدم رقم المنفذ مع معرفات PID الخاصة بها، تحتاج إلى إضافة خيارين: -p، والذي يعرض معرفات PID، و-l، الذي يوضح مآخذ الاستماع فقط..

تحتاج أيضًا إلى تحديد البروتوكول (tcp، udp، وما إلى ذلك) والتصفية حسب الحالة اختياريًا (LISTEN، وما إلى ذلك). على سبيل المثال، لمعرفة عمليات TCP التي يتم الاستماع إليها على أي منافذ، يمكنك تشغيل:

netstat -p tcp -l

سيؤدي هذا إلى طباعة معلومات حول كل مقبس TCP يستمع على أي منافذ، بما في ذلك معرف المنتج (PID) الخاص به.

للتصفية حسب منافذ معينة، يجب عليك إضافة خيار آخر: -n، والذي يعرض العناوين الرقمية بدلاً من الأسماء. تحتاج أيضًا إلى تحديد تنسيق العنوان الدقيق: [protocol][@hostname|hostaddr][:service|port].

على سبيل المثال، لمعرفة عمليات TCP التي يتم الاستماع إليها على المنفذ 80، يمكنك تشغيل:

netstat -p tcp -l -n 80

سيؤدي هذا إلى طباعة معلومات حول كل مقبس TCP يستمع على المنفذ 8080، بما في ذلك معرف المنتج (PID) الخاص به.

لإنهاء هذه العمليات، يمكنك استخدام الأمر killمع أي خيار إشارة تريده ومعرفات PID التي حصلت عليها من netstat. على سبيل المثال:

قتل 1234 5678

سيؤدي هذا إلى إرسال إشارات SIGTERM (الافتراضية) إلى العمليات ذات معرفات PID 1234و5678.

إذا لم تستجب بعض العمليات لإشارات SIGTERM كما كان من قبل، فيمكنك استخدام -9بدلاً من لا شيء بعد kill. سيؤدي هذا إلى إرسال إشارات SIGKILL كما كان من قبل، مما يجبرها على الإنهاء فورًا ولكن قد يتسبب في فقدان البيانات أو تلفها كما كان من قبل. على سبيل المثال:

قتل -9 1234 5678

سيؤدي هذا إلى إرسال إشارات SIGKILL إلى العمليات ذات معرفات PID 1234و5678بقوة، على سبيل المثال. استبدل 1234بمعرف PID الصحيح لعملية التشغيل.

التحكم في تطبيقات Linux الخاصة بك

بفضل الخطوات الموضحة أعلاه، يمكنك إيقاف عملية تشغيل Linux بسرعة باستخدام رقم منفذ باستخدام سطر أوامر Linux. تذكر توخي الحذر عند إيقاف العمليات، خاصة مع إشارات SIGKILL، لأنها قد تسبب آثارًا جانبية غير مرغوب فيها - فأنت لا تريد التسبب في عدم استقرار النظام، بعد كل شيء.

هل تريد إلقاء نظرة فاحصة على أداء نظامك على Linux؟ قد ترغب في تحقق من استخدام الذاكرة الخاصة بك على Linux بعد ذلك. إذا كنت قلقًا بشأن مخاطر أمنية محتملة، فقد تحتاج إلى تغيير كلمة المرور الخاصة بك على لينكس أيضًا.

هل تحتاج إلى التبديل إلى توزيعة Linux جديدة؟ إذا كنت مبتدئًا، النظر في لينكس منت بديل آمن ومستقر..

.

المنشورات ذات الصلة:


2.04.2023