web-dev-qa-db-ja.com

ポート80で実行中のプロセスを強制終了

これは私が殺したいプロセスです:

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

ポートを使用している実行中のプロセスを見つける方法はいくつかあります。

フューザーを使用すると、リスニングポートに関連付けられている複数のインスタンスのPIDが得られます。

Sudo apt-get install psmisc
Sudo fuser 80/tcp

80/tcp:               1858  1867  1868  1869  1871

見つけたら、プロセスを停止または強制終了できます。

Lsofを使用してPIDと詳細を見つけることもできます

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でlistenであるソケットに制限するには(ポート80に接続するクライアントとは対照的に):

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

それらを自動的に殺すには:

Sudo lsof -t -i tcp:80 -s tcp:listen | Sudo xargs kill
31
Rui F Ribeiro

実行するコマンドを示すワンライナーは次のとおりです。

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

プロセスを実際に強制終了するには、echoSudoに置き換えます。

7
jlliagre

あなたはすでにどのプロセスを殺すかを見つけました:それはプロセス番号20570であり、そのバイナリはhttpdの出力の行の終わりに書かれているようにnetstatという名前を持っています。番号kill 20570または名前killall httpdで強制終了できますが、そのようにすることはお勧めしません。

1024未満のポートは標準化された使用法(通常)であり、less /etc/servicesを使用してそれらおよび他の多くのポートを検索できます。ポート80のエントリもコメント化されています。

http            80/tcp          www             # WorldWideWeb HTTP

だからそれはおそらくウェブサーバーです。あなたが持っている名前はhttpdであり、man httpdは、Apacheバイナリが適合するという大きなヒントを与えるはずです。 Apacheは大きなプレーヤーの1つであり、快適な管理プログラムがいくつか用意されていますが、単なる起動/停止アクションには必要ありません。

あなたはミントを持っていますか?通常のデスクトップでは?次に、Systemの下のControl Centerを調べ、Servicesをクリックします。そこで何かを行うには管理者である必要があります。 「webserver」というラベルの付いたものが見つかるまでスクロールします(私はApacheの代わりにlighttpdを使用していて、Apacheエントリがどのように表示されるのか正確にはわかりません)。

一時的に停止したいだけの場合は、コンソールで

Sudo service stop httpd

Sudo service start httpdで始まります。 service --status-allは、serviceが認識して処理できるすべてのサービスのリストを返します。サービスの再起動(つまり、この順序で停止および開始する)のショートカットはservice --full-restart SERVICEで、SERVICEはサービスの名前です。例:httpd in Apacheのケース。

netstatで見つけたプログラムのほとんどは、そのように処理できます。 manページがないものもあれば、ないものもありますが、まれです。

3
deamentiaemundi

これを行う簡単な方法があります。最初に、ポート80を使用しているプロセスを netstat で確認します。

netstat -ntl | grep 80

ここで、プロセス名を取得し、 killall コマンドを使用してプロセスを強制終了します。

killall -9 process name
0
amit singh