[Groonga-commit] droonga/droonga-engine at a31e1dc [master] Put PID file under DROONGA_BASE_DIR.

Back to archive index

YUKI Hiroshi yuki****@clear*****
Tue Oct 7 10:09:48 JST 2014


> それとも、/var/run/droonga-engine/みたいなディレクトリーがな
> くなるってことですか?であれば、起動スクリプトの中で作るのが
> いいんじゃないかと思いました。

遭遇していた問題はこちらの方です。
root権限がないと/var/run以下にファイルを作れないので
インストール時にroot権限でディレクトリを作成してdroongaグループで書き込
めるようにしていたのが、再起動後はそのディレクトリがないのでdroonga-
engine/droonga-http-serverがユーザ権限で書き込めない……という状況でした。
よく考えたらサービスの起動スクリプトはroot権限なので、そこで作ればよかっ
たんですね。見落としておりました……

> 他のサービスは/var/run/droonga-engine/みたいなディレクトリー
> にPIDファイルをぶちこんでいるんですよね?であれば、システム
> にサービスとして登録するならdroonga-engineもその流儀にのっとっ
> た方が使う人にとってうれしい挙動だと思います。

Apache等いくつかのサービスがそういうディレクトリを用意して対応しているよ
うだったのですが、どのタイミングでディレクトリを作成しているのか間では調
べていませんでした。
(/var/run以下が消去されると思っていなかったので、その事で頭がいっぱいに
なってしまって、他の物を参照するのを忘れていました。)
他の物がどうやって実現しているのかはまだ分かっていませんが、サービスの起
動スクリプトの中でできること&やっておかしくないことだと思ったので、そう
しようと思っています。

Kouhei Sutou wrote:
>>      /var/run/* are automatically removed on shutdown or next startup of the computer, so, after restarting droonga-engine couldn't start!!
> 
> え、これ、どういうことですか?
> PIDファイルがないとdroonga-engineが起動できないってことです
> か?それはdroonga-engineが悪そうな気がしますけど。。。
> 
> それとも、/var/run/droonga-engine/みたいなディレクトリーがな
> くなるってことですか?であれば、起動スクリプトの中で作るのが
> いいんじゃないかと思いました。
> 
> 他のサービスは/var/run/droonga-engine/みたいなディレクトリー
> にPIDファイルをぶちこんでいるんですよね?であれば、システム
> にサービスとして登録するならdroonga-engineもその流儀にのっとっ
> た方が使う人にとってうれしい挙動だと思います。
> 
> 他のサービスがどうやっているかを見てみるといいんですかねぇ。
> 
> 
> In <a31e1dc7be8dc784348c791c95984a1ac7dd6b5d �� jenkins.clear-code.com>
>    "[Groonga-commit] droonga/droonga-engine �� a31e1dc [master] Put PID file under DROONGA_BASE_DIR." on Mon, 06 Oct 2014 21:27:03 +0900,
>    SHIMODA "Piro" Hiroshi <null+groonga �� clear-code.com> wrote:
> 
>> SHIMODA "Piro" Hiroshi	2014-10-06 21:27:03 +0900 (Mon, 06 Oct 2014)
>>
>>    New Revision: a31e1dc7be8dc784348c791c95984a1ac7dd6b5d
>>    https://github.com/droonga/droonga-engine/commit/a31e1dc7be8dc784348c791c95984a1ac7dd6b5d
>>
>>    Message:
>>      Put PID file under DROONGA_BASE_DIR.
>>      
>>      /var/run/* are automatically removed on shutdown or next startup of the computer, so, after restarting droonga-engine couldn't start!!
>>
>>    Modified files:
>>      install/centos/droonga-engine
>>      install/centos/functions.sh
>>      install/debian/droonga-engine
>>      install/debian/functions.sh
>>
>>    Modified: install/centos/droonga-engine (+1 -1)
>> ===================================================================
>> --- install/centos/droonga-engine    2014-10-06 18:51:05 +0900 (b5af009)
>> +++ install/centos/droonga-engine    2014-10-06 21:27:03 +0900 (c48588f)
>> @@ -17,7 +17,7 @@ GROUP=droonga
>>   DAEMON=/usr/local/bin/$NAME
>>   export DROONGA_BASE_DIR=/home/$NAME/droonga
>>   cd $DROONGA_BASE_DIR
>> -PIDFILE=/run/$NAME/$NAME.pid
>> +PIDFILE=$DROONGA_BASE_DIR/$NAME.pid
>>   DAEMON_ARGS="--daemon --pid-file=$PIDFILE"
>>   
>>   [ -x $DAEMON ] || exit 0
>>
>>    Modified: install/centos/functions.sh (+0 -4)
>> ===================================================================
>> --- install/centos/functions.sh    2014-10-06 18:51:05 +0900 (b198969)
>> +++ install/centos/functions.sh    2014-10-06 21:27:03 +0900 (3f5ed34)
>> @@ -20,10 +20,6 @@ register_service() {
>>   
>>     #TODO: we should migrate to systemd in near future...
>>   
>> -  local pid_dir=/run/$NAME
>> -  mkdir -p $pid_dir
>> -  chown -R $USER:$GROUP $pid_dir
>> -
>>     curl -o /etc/rc.d/init.d/$NAME $(download_url "install/centos/$NAME")
>>     if [ $? -ne 0 ]; then
>>       echo "ERROR: Failed to download service script!"
>>
>>    Modified: install/debian/droonga-engine (+1 -1)
>> ===================================================================
>> --- install/debian/droonga-engine    2014-10-06 18:51:05 +0900 (4b96c26)
>> +++ install/debian/droonga-engine    2014-10-06 21:27:03 +0900 (b205d8b)
>> @@ -18,7 +18,7 @@ USER=$NAME
>>   GROUP=droonga
>>   DAEMON=/usr/local/bin/$NAME
>>   export DROONGA_BASE_DIR=/home/$NAME/droonga
>> -PIDFILE=/var/run/$NAME/$NAME.pid
>> +PIDFILE=$DROONGA_BASE_DIR/$NAME.pid
>>   DAEMON_ARGS="--daemon --pid-file=$PIDFILE"
>>   SCRIPTNAME=/etc/init.d/$NAME
>>   
>>
>>    Modified: install/debian/functions.sh (+0 -4)
>> ===================================================================
>> --- install/debian/functions.sh    2014-10-06 18:51:05 +0900 (0c65ba7)
>> +++ install/debian/functions.sh    2014-10-06 21:27:03 +0900 (5d754b4)
>> @@ -18,10 +18,6 @@ register_service() {
>>     local USER=$2
>>     local GROUP=$3
>>   
>> -  local pid_dir=/var/run/$NAME
>> -  mkdir -p $pid_dir
>> -  chown -R $USER:$GROUP $pid_dir
>> -
>>     curl -o /etc/init.d/$NAME $(download_url "install/debian/$NAME")
>>     if [ $? -ne 0 ]; then
>>       echo "ERROR: Failed to download service script!"
> 
> _______________________________________________
> Groonga-commit mailing list
> Groonga-commit �� lists.sourceforge.jp
> http://lists.sourceforge.jp/mailman/listinfo/groonga-commit
> 

-- 
結城 洋志 <YUKI Hiroshi>
E-mail: yuki �� clear-code.com

株式会社クリアコード
〒170-0005 東京都豊島区南大塚3-29-9
           中野ビル3階
TEL : 03-5927-9440
FAX : 03-5927-9441
WWW : http://www.clear-code.com/




More information about the Groonga-commit mailing list
Back to archive index