end0tknr's kipple - 新web写経開発

http://d.hatena.ne.jp/end0tknr/ から移転します

ジョブキューサーバ: Gearmanの自動起動script

http://search.cpan.org/dist/Gearman/
http://search.cpan.org/dist/Gearman-Server/

job queueサーバのGearmanについて調べていますが、試しに自動起動scriptを書いてみました。
実際の環境に合わせて書き換えが必要な部分もありますが、とりあえず、動作してます。

起動script

#!/bin/sh

# chkconfig: 2345 80 20
# description: Gearman Job Queue Server & Worker

case "$1" in
  start)
    /usr/local/bin/gearmand --daemon
    /home/endo/tmp/job_queue_worker.pl &
    WORKER_PID=$!
    echo $WORKER_PID > /tmp/GEARMAN_WORKER.PID
    exit $?
    ;;

  stop)
    #worker stop
    WORKER_PID=`cat /tmp/GEARMAN_WORKER.PID`
    kill $WORKER_PID

    #gearmand stop
    sh -c "echo shutdown; sleep 2" | telnet localhost 7003
    #telnet localhost 7003 すると、gearmandの状態表示やshutdown等ができます
    #詳細はこちら http://search.cpan.org/perldoc?Gearman::Server::Client
    exit $?
    ;;

  *)
    echo "Usage $0 start/stop"
    exit 1;;
esac

起動scriptの配備

# cd /etc/rc.d/init.d
# cp ~endo/tmp/gearman.sh .
# chkconfig --add gearman.sh
# chkconfig --list gearman.sh
gearman.sh 0:off   1:off   2:on    3:on    4:on    5:on    6:off

telnet localhost 7003」に接続すると、gearmandの状態表示等ができます

今回は、stop時にshutdownを利用していますが、その他のコマンド( workersk status jobs clients maxqueue shutdown graceful version )に関しては次のurlが参考になると思います。
http://d.hatena.ne.jp/sugyan/20110704/1309759615
http://search.cpan.org/perldoc?Gearman::Server::Client