80 বন্দরে হত্যা প্রক্রিয়া চলছে


14

এই প্রক্রিয়াটি আমি হত্যা করতে চাই:

sooorajjj@Treako ~/Desktop/MerkMod $ sudo netstat -tunap | grep :80
tcp6    0   0 :::80   :::*     LISTEN    20570/httpd

উত্তর:


31

কোন চলমান প্রক্রিয়াটি কোনও বন্দর ব্যবহার করছে তা আবিষ্কার করার বিভিন্ন উপায় রয়েছে।

ফুসার ব্যবহার করে এটি শ্রবণ বন্দরের সাথে যুক্ত একাধিক উদাহরণের পিআইডি (গুলি) দেবে।

sudo apt-get install psmisc
sudo fuser 80/tcp

80/tcp:               1858  1867  1868  1869  1871

সন্ধানের পরে, আপনি হয় প্রক্রিয়াটি বন্ধ বা হত্যা করতে পারেন (এস)।

আপনি পিএসডি এবং আরও বিবরণগুলি lsof ব্যবহার করে খুঁজে পেতে পারেন

sudo lsof -i tcp:80

COMMAND  PID     USER   FD   TYPE DEVICE SIZE/OFF NODE NAME  
nginx   1858     root    6u  IPv4   5043      0t0  TCP ruir.mxxx.com:http (LISTEN)  
nginx   1867 www-data    6u  IPv4   5043      0t0  TCP ruir.mxxx.com:http (LISTEN)  
nginx   1868 www-data    6u  IPv4   5043      0t0  TCP ruir.mxxx.com:http (LISTEN)  
nginx   1869 www-data    6u  IPv4   5043      0t0  TCP ruir.mxxx.com:http (LISTEN)  
nginx   1871 www-data    6u  IPv4   5043      0t0  TCP ruir.mxxx.com:http (LISTEN)  

80 পোর্টে শুনতে পাওয়া সকেটগুলিতে সীমাবদ্ধ করতে (ক্লায়েন্টগুলি যে 80 পোর্টের সাথে সংযুক্ত রয়েছে তার বিপরীতে):

sudo lsof -i tcp:80 -s tcp:listen

এগুলি স্বয়ংক্রিয়ভাবে হত্যা করতে:

sudo lsof -t -i tcp:80 -s tcp:listen | sudo xargs kill

1
আমি উল্লেখ করতে চাই যে ফুসারের সাথে -kসমস্ত মিলে যাওয়া প্রক্রিয়াগুলি -iমেরে ফেলতে এবং ইন্টারেক্টিভভাবে হত্যা করতে হবে (প্রতিটিটির জন্য আপনাকে অনুরোধ জানানো হবে)।
উ। উইলকক্স

7

এখানে একটি অনেলিনার রয়েছে যা চালানোর আদেশটি দেখায়:

echo kill $(sudo netstat -anp | awk '/ LISTEN / {if($4 ~ ":80$") { gsub("/.*","",$7); print $7; exit } }')

প্রতিস্থাপন echoদ্বারা sudoজন্য প্রক্রিয়া আসলে নিহত হবে।


এর echoজন্য প্রতিস্থাপন করুনsudo
এলিওএক্স

এটি কেবলমাত্র আমাদের বন্দর নম্বরটি আমাদের সাথে প্রতিস্থাপন করতে হবে এটি সঠিক উত্তর 80
ইউসুফ এইচ।

4

খোলা বন্দর তালিকাভুক্ত করার জন্য তিনটি বিকল্প jsh এর মধ্যে দেওয়া হয় whatisonport:

netstat -anp --numeric-ports | grep ":${PORT}\>.*:" 

fuser -v "${PORT}"/tcp

lsof -P -S 2 -i "tcp:${PORT}" | grep "\(:${PORT}->.*:\|:$PORT (LISTEN)$\)"

আমি পছন্দ করি netstatকারণ এটি দ্রুত, সংক্ষিপ্ত, এবং অন্যান্য ব্যবহারকারীদের দ্বারা খোলা পোর্টগুলি তালিকাভুক্ত করতে পারে। (যদিও এ জাতীয় প্রক্রিয়াগুলির নাম এবং পিআইডি তালিকাভুক্ত করার জন্য এটি এখনও সুপারভাইজার / ব্যবহারকারীর সুবিধাগুলির প্রয়োজন হবে))

আউটপুট

$ netstat -anp --numeric-ports | grep ":80\>.*:" 
tcp6       0      0 :::80           :::*            LISTEN      1914/apache2    

$ fuser -v "80/tcp"
                     USER        PID ACCESS COMMAND
80/tcp:              root       1914 F.... apache2
                     www-data  12418 F.... apache2
...

$ lsof -P -S 2 -i "tcp:80" | grep "\(:80->.*:\|:80 (LISTEN)$\)"
apache2  1914     root    4u  IPv6   11920      0t0  TCP *:80 (LISTEN)
apache2 12418 www-data    4u  IPv6   11920      0t0  TCP *:80 (LISTEN)
...

ব্যবহারের grepদুটি মামলা স্থানীয় পাশ শুধুমাত্র বন্দর মেলে, এবং একটি দূরবর্তী পোর্ট 80. খোলা সংযোগ লাফালাফি (একটি বিকল্প ব্যবহার করতে হবে হয় -lসঙ্গে netstat, অথবা lsofব্যবহারের -sTCP:LISTEN, কিন্তু তারা উপরে greps আমি প্রদত্ত বন্দর থেকে আউটগোয়িং সংযোগগুলিও ধরুন যা মাঝে মাঝে আগ্রহের কারণ হতে পারে))

সঙ্গে lsofআমরা ব্যবহার -Pপ্রদর্শন করতে :80পরিবর্তে :http, grep সম্ভব না। -S 2বিকল্প শক্তির lsofযথা সময়ে সম্পন্ন করতে।

প্রক্রিয়া হত্যা

ধরে নিই আমরা ব্যবহার করতে চাই netstat, আমরা পিআইডিগুলি এর মতো ধরতে পারি:

$ netstat -anp --numeric-ports | grep ":80\>.*:" | grep -o "[0-9]*/" | sed 's+/$++'
1914
...

এবং আমরা এমনকি এই পিআইডি পাস করতে পারে kill:

... | xargs -d '\n' kill -KILL

তবে রিজেক্সপস ব্যবহার করার সময় প্রায়শই মিথ্যা পজিটিভ হওয়ার সম্ভাবনা থাকে, তাই আমি কেবলমাত্র প্রাথমিক আউটপুটটি দেখার netstatএবং তারপরে ম্যানুয়ালি সিদ্ধান্ত নেওয়ার পরামর্শ দিই যে চালানো উচিত কিনা:

$ kill -KILL 1914

আরো দেখুন

আমার আরেকটি স্ক্রিপ্ট বলা আছে listopenportsযা আগ্রহী হতে পারে।


3

কোন প্রক্রিয়াটি মেরে ফেলতে হবে তা আপনি ইতিমধ্যে খুঁজে পেয়েছেন: এটির প্রক্রিয়া নম্বর 20570এবং এর বাইনারিটির নামটি httpdআউটপুটটির লাইনের শেষে লেখা রয়েছে netstat। আপনি এটি নম্বর kill 20570বা নাম দিয়ে হত্যা করতে পারেন killall httpdতবে আমি সেভাবে এটি করার পরামর্শ দেব না would

1024 এর চেয়ে কম বন্দরগুলির একটি মানক ব্যবহার (সাধারণত) থাকে, আপনি সেগুলি এবং আরও অনেককে সন্ধান করতে পারেন less /etc/services। 80 পোর্টের জন্য এন্ট্রি এমনকি মন্তব্য করা হয়েছে:

http            80/tcp          www             # WorldWideWeb HTTP

সুতরাং এটি সম্ভবত একটি ওয়েবসার্ভার। আপনি যে নামটি আছে httpdএবং man httpdআপনাকে বড় ইঙ্গিতটি এটি এ্যাপাচি যা তড়কা বাইনারি হয় দিতে হবে। অ্যাপাচি বড় খেলোয়াড়দের মধ্যে অন্যতম, এতে কিছু আরামদায়ক পরিচালনা-প্রোগ্রাম উপলব্ধ রয়েছে তবে আপনার কেবল নিরীক্ষণ / স্টপ অ্যাকশনের প্রয়োজন নেই।

তোমার কি পুদিনা আছে? একটি সাধারণ ডেস্কটপ সঙ্গে? তারপর দেখুন Control Centerঅধীনে Systemএবং ক্লিক করুন Services। সেখানে কিছু করার জন্য আপনাকে প্রশাসক হওয়া দরকার। আপনি "ওয়েবসারভার" লেবেলযুক্ত কিছু না পাওয়া পর্যন্ত নীচে স্ক্রোল করুন (আমি আপাচের পরিবর্তে লাইটটিপিডি পেয়েছি এবং অ্যাপাচি এন্ট্রি কেমন হবে তা ঠিক জানি না) এবং এটিকে চেক করে না ফেলে।

আপনি যদি এটি থামাতে চান তবে কনসোলে অস্থায়ীভাবে চেষ্টা করুন

sudo service stop httpd

এবং দিয়ে শুরু sudo service start httpd। সম্পর্কে জানে এবং পরিচালনা করতে পারে এমন service --status-allসমস্ত পরিষেবার একটি তালিকা ফেরত দেয় service। কোনও সার্ভিস পুনঃসূচনা করার শর্টকাট (এটি: থামুন এবং সেই ক্রমে এটি শুরু করুন) সেবার নামটি service --full-restart SERVICEসহ SERVICE, যেমন: httpdঅ্যাপাচি ক্ষেত্রে of

আপনি যে প্রোগ্রামগুলি সন্ধান করেন সেগুলির বেশিরভাগই netstatসেইভাবে পরিচালনা করা যায়। কারও কারও কাছে ম্যান-পৃষ্ঠা নাও থাকতে পারে তবে সেগুলি বিরল।


0

এটি করার একটি সহজ উপায় আছে। প্রথমে কোন প্রক্রিয়াটি নেটট্যাট দ্বারা 80 বন্দরটি ব্যবহার করছে তা পরীক্ষা করুন :

netstat -ntl | grep 80

এখন আপনি প্রক্রিয়াটির নাম পেয়েছেন এবং কিল্লাল আদেশ দিয়ে প্রক্রিয়াটি মেরে ফেলুন :

killall -9 process name

কিল্লাল কমান্ড ব্যবহার করার বিপদগুলি কী কী?
পিটার মর্টেনসেন

2
killallব্যাখ্যা বা সতর্কতা ছাড়াই -1 ।
guntbert

1
কিল্লার সাথে বেশ কিছু সমস্যা রয়েছে। কোনও সমস্যার ক্ষেত্রে এটির হাঁটুতে সিস্টেম আনতে সক্ষম হওয়া ছাড়াও, এটি বন্দরের সাথে সম্পর্কিত নয় এমন কোনও প্রক্রিয়াটির বহুগুণ উদাহরণগুলি হত্যা করতে পারে। সর্বোপরি, কিলেলের সবচেয়ে বড় সমস্যাটি হ'ল সোলারিস বাক্সের কেউ যদি এটি ব্যবহার করার চেষ্টা করে তবে এটি চলমান সমস্ত প্রক্রিয়াটিকে মেরে ফেলে।
রুই এফ রিবেইরো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.