Help us understand the problem. What is going on with this article?

homebrewでインストールしたelastic(elasticsearch)のプロセスを手軽に止める

More than 3 years have passed since last update.

はじめに

elastic(elasticsearch)はhomebrewでこんな感じで簡単にインストールできる

> brew install elasticsearch

起動方法はシンプルにelasticsearchをコマンド名としているので簡単に起動する

> elasticsearch

また、バックグラウンド実行させる場合は

> elasticsearch &

ただ、バックグラウンド起動した場合にはこのelastic(elasticsearch)のプロセスを削除するのはけっこう面倒
こんな感じでpsコマンドでプロセスの一覧をgrepして絞り込んでプロセスIDを見つけてから、killコマンド打つのがだるい

> ps aux | grep elasticsearch
user          19246   0.0  0.1  2526452  12172   ??  S     9:54PM   0:00.13 xxxxx/elasticsearch
> kill 19246

面倒なプロセス停止を簡単にする解決策

elastic(elasticsearch)をデーモンで起動し、pidファイルにプロセスIDを書き出してやり、pidファイルを指定してkillコマンドを実行してやれば良い。詳細は以下

elastic(elasticsearch)を起動時にオプションを付ける

elastic(elasticsearch)時に以下のオプションを付ける

  • -d オプションでデーモン化
  • -p オプションでファイルにpidファイルの場所を指定 今回はtmpディレクトリの下を指定
> elasticsearch -d -p ./tmp/pid

elastic(elasticsearch)を停止する際にpidファイルを利用する

pidファイルを読み込んでその中身(12345 とかのプロセスID)を指定してkillコマンドを実行

> kill `cat ./tmp/pid`

おまけ

Makefileで一発起動・停止

Makafileを使って一発で起動と停止出来るようにしておくと楽
(実際はRailsのプロジェクトで起動するミドルウェアをまとめて起動している)

# 起動
es_start:
    elasticsearch -d -p ./tmp/pid

# 停止
es_stop:
    kill `cat ./tmp/pid`

git管理している場合はうっかりpidファイルをコミットしないようにする

git管理している場合は、.gitignoreで無視する領域にpidファイルを指定してうっかりコミットしてしまう心配がなくなる

.gitignoreファイルが以下の様なディレクトリがある場合

/tmp

起動時に
./tmp/pid ファイルは、git管理しているプロジェクトの.gitignoreにかかれている領域に置いてやると紛らわしくなくてよいでしょう

refs:

kon_yu
道産子プログラマ
http://konyu.hatenablog.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした