3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

digdagサーバ起動スクリプト

Last updated at Posted at 2016-10-25

/home/vagrant/digdag-server/bin/digsv.sh

nohup /usr/local/bin/digdag server --config ~/.config/digdag/config --log ~/digdag-server/log/server.log --log-level info --task-log ~/digdag-server/task-log >> ~/digdag-server/log/server_stdout.log 2>&1 &

ヘルプ(digdag server help)に-c, --config PATH.properties Configuration file (default: /home/vagrant/.config/digdag/config)とあるが上記のように指定しないとエラーになる
しかし同じヘルプに-c, --config PATH.properties server configuration property pathという行もある(「-c, --config」についての行が2行重複している)
http://docs.digdag.io/command_reference.html#server-mode-commands の「-c, --config」の説明にはデフォルトがあるとは書いていない(ちなみにこの説明には「See Digdag server for details.」とあるがリンク切れ)
デフォルトありに改善頂けると嬉しい(ヘルプの重複行やリンク切れも)

コマンドラインでしか指定できない設定とconfigファイルでしか指定できない設定がある
全てconfigファイルに指定できるよう改善頂けると嬉しい

Digdagサーバを複数号機起動する場合、タスクログは全号機が同じディレクトリに出力するのがお勧め
NFSの必要性

/etc/init.d/digdag-server

#! /bin/bash
# chkconfig: 2345 90 60

. /etc/init.d/functions

PROG=digdag-server
CMD=/home/vagrant/digdag-server/bin/digsv.sh
USER=vagrant
PID=`pgrep -f " /usr/local/bin/digdag server "`
EXIST=$?
RETVAL=0

start() {
  echo -n "Starting $PROG: "
  if [ $EXIST -eq 0 ]; then
    echo_failure
    echo
    echo -n "$PROG is already running."
    RETVAL=1
  else
    sudo -u $USER -i $CMD
    sleep 1
    PID=`pgrep -f " /usr/local/bin/digdag server "`
    EXIST=$?
    if [ $EXIST -eq 0 ]; then
      echo_success
    else
      echo_failure
      RETVAL=1
    fi
  fi
  echo
  return $RETVAL
}

stop() {
  echo -n "Stopping $PROG: "
  if [ $EXIST -eq 0 ]; then
    kill $PID
    sleep 1
    pgrep -f " /usr/local/bin/digdag server " >& /dev/null
    EXIST=$?
    if [ $EXIST -eq 0 ]; then
      echo_failure
      RETVAL=1
    else
      echo_success
      RETVAL=0
    fi
  else
    echo_failure
    echo
    echo -n "$PROG is not running."
    RETVAL=1
  fi
  echo
  return $RETVAL
}

status() {
  if [ $EXIST -eq 0 ]; then
    echo "$PROG (pid $PID) is running..."
  else
    echo "$PROG is stopped"
    RETVAL=3
  fi
  return $RETVAL
}

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

exit 0

「pgrep -f " /usr/local/bin/digdag server "」って何回も書くのやめたいけどうまくできない...

立ち上がるまで/終了するまでsleep 1ってのも荒っぽいが今のところあまり困っていない

2016/11/4
 sudoに-i追加
 (rb>にてrubyコマンド(/usr/local/rbenv/shims/ruby)がみつからなかったため)

TODO

stdout/stderrリダイレクトログのローテート
これ使えるかも → http://blog.hansode.org/archives/52520908.html
通常のログはサイズベースでローテートされる → https://docs.digdag.io/command_reference.html#common-options

3
2
0

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
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?