1
0

More than 3 years have passed since last update.

[PHP][Laravel]重い処理行うAPIの実行を止めたい

Posted at

ローカルで動かしているLaravelで、重い処理行うAPIの実行を止めたい時の忘備録。
サーバー再起動やそれっぽいプロセスをkillしても動き続ける時。

結論

以下のコマンドで停止できる。

$ sudo kill $(sudo lsof -t -i:8000)

コマンド解説

lsofはオープンしているファイルを一覧表示するコマンド。
-iオプションで特定のポートで実行しているプロセスを表示できる。

$ lsof -i:8000

COMMAND     PID  USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
Google    91524 xxxxx   35u  IPv4 0x6f9544b817401ad3      0t0  TCP localhost:56762->localhost:irdmi (ESTABLISHED)
php       93463 xxxxx    5u  IPv4 0x6f9544b82f9287c3      0t0  TCP localhost:irdmi (LISTEN)
php       93463 xxxxx    6u  IPv4 0x6f9544b8190aa1eb      0t0  TCP localhost:irdmi->localhost:56762 (ESTABLISHED)

-tオプションでプロセス番号のみ表示し、それを$( )でネストしてkillする。

$ kill $(lsof -t -i:8000)

原因

下二つが該当のプロセスの模様。
artisan servを停止するだけだと上のプロセスのみが停止して、下のプロセスは動き続けていた。
コマンドでkillする場合は、プロセスの親子関係を考慮しないとうまく停止できない場合があるけど
上記のコマンドだと一気にプロセス削除できるので順番を気にしなくて良い。

  PID TTY       TIME CMD
xxxxx xxxxx  0:00.24 php artisan serv
xxxxx xxxxx  0:00.08 /usr/bin/php -S 127.0.0.1:8000 /path/to/server.php
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0