LoginSignup
1
0

More than 1 year has passed since last update.

【Linux EC2】PIDではなく、プロセス名で kill するコマンド

Last updated at Posted at 2022-06-15

プロセスをPIDではなく名前で kill する

結論こちらで可能(Amazon Linuxで動くよ!)

プロセス名を指定して kill できます
pgrep -f 'プロセス名' | { read v ;kill -9  $v; }

使い方

まずはこちらで殺したいプロセスの名前を調べましょう。

ps aux | grep プロセス名

railsで unicorn のプロセスを殺したい場合はこんな感じ。

ps aux | grep unicorn

image.png

時間の右に書いてあるのがプロセス名

今回の場合は unicorn_rails になるのですが。
unicorn_rails で絞るとその下にある worker[0]~[3] も引っかかってしまいます。

なので一意になるように unicorn_rails master で検索します(スペースが入る場合は文字列にしてね!
grep で絞る感じです

unicorn_rails のプロセスを名指しで kill したい場合。
pgrep -f ' unicorn_rails master' | { read v ;kill -9  $v; }

restartコマンドが用意されていないプロセスを再起動するコマンドを作る

function を使うとメソッドを定義でき一連の処理を自動化できます。
例えば rails の unicorn プロセスを再起動させたい場合はこんな感じで作れます。

unicorn restart
function unicorn_restart(){
    pgrep -f 'unicorn_rails master' | { read v ;kill -9  $v; }
    bundle exec unicorn_rails -c /var/www/www.hoge.net/current/config/unicorn/production.rb -E production -D
}

unicorn_rails には再起動コマンドは用意されていないので、自作すると非常に便利ですね

いちいちプロセスIDを調べて kill -9 で ID しなくてよいので
本番環境でのバグ調査などで非常に役立ちます(バグ調査するときは別でサーバ立ててね!)

手動で頑張る場合
ps aux | grep unicorn
kill -9 12345
1
0
2

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