読者です 読者をやめる 読者になる 読者になる

tig.rbとTiarraをstart-stop-daemonで動かす

#!/bin/sh
# /etc/init.d/tig

NAME=tig
USER=aereal
PROG=/usr/local/src/net-irc/examples/tig.rb
PIDFILE=/var/run/$NAME.pid

start() {
  echo -n "Starting: $NAME"
  start-stop-daemon \
    --start \
    --pidfile $PIDFILE \
    --make-pidfile \
    --background \
    --exec $PROG \
    --user $USER \
    --chuid $USER \
    -- \
    --log /home/$USER/var/log/$NAME.log
  return $?
}

stop() {
  echo -n "Stopping: $NAME"
  start-stop-daemon \
    --stop \
    --oknodo \
    --pidfile $PIDFILE
  return $?
}

restart() {
  stop
  start
}

case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  restart)
    restart
    ;;
  *)
    echo "Usage: $0 {start|stop|restart}"
    exit 1
    ;;
esac
#!/bin/sh
# /etc/init.d/tiarra

NAME=tiarra
USER=aereal
PROG=/usr/local/src/tiarra/tiarra
PIDFILE=/var/run/$NAME.pid

start() {
  echo -n "Starting: $NAME"
  start-stop-daemon \
    --start \
    --pidfile $PIDFILE \
    --make-pidfile \
    --background \
    --exec $PROG \
    --user $USER \
    --chuid $USER \
    --chdir /home/$USER \
    -- \
    --config=/home/$USER/tiarra.conf
  return $?
}

stop() {
  echo -n "Stopping: $NAME"
  start-stop-daemon \
    --stop \
    --oknodo \
    --pidfile $PIDFILE
  return $?
}

restart() {
  stop
  start
}

case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  restart)
    restart
    ;;
  *)
    echo "Usage: $0 {start|stop|restart}"
    exit 1
    ;;
esac

ユーザ権限で実行してほしかった(ログをみる)ので、 --chuid オプションをつける。てっきり --user オプションで実行するユーザを指定しているのかとおもったら違った。

Tiarraの Log::Channel モジュールに指定するディレクトリ名は、Tiarraが起動したときの作業ディレクトリからの相対パスになるので、 --chdir オプションで起動ディレクトリを指定しておく。(tiarra.confのほうで絶対パスを指定しても大丈夫なのかもしれない)