Techioz Blog

シンサーバー自動再起動スクリプト

概要

私はubuntuの初心者ですが、Microsoftからのメンテナンスのために仮想マシンが自動的に再起動するというAzureの問題に直面しています。

このため、私のアプリケーションはダウンしています。 また、再起動やシステムのアップデートがいつ行われるかについて、Windows 側からの確認はありません。

Thin Server を起動しても、特定のポート、つまりポート 3000、3001、3002、3003 などに対して開いたままにするにはどうすればよいですか。教えてください。

さまざまなブログを参照し、再起動時にシンサーバーが自動的に起動するように init.d に変更を加えました。

user: root
group: webuser
pid: tmp/pids/thin.pid
timeout: 30
wait: 30
log: log/thin.log
max_conns: 1024
require: []
environment: production
max_persistent_conns: 512
servers: 1
threaded: true
no-epoll: true
daemonize: true
socket: tmp/sockets/thin.sock
chdir: webuser/app
tag: hey aux

上記を試しましたが失敗しました。

以下は私の etc/init.d シンファイルです:-

# Do NOT "set -e"

DAEMON=/usr/bin/thin
SCRIPT_NAME=/etc/init.d/thin

# Exit if the package is not installed
[ -x "$DAEMON" ] || exit 0

run_action() {
        ACTION="$1"

    if [ -x /usr/bin/ruby1.8 ]; then
        /usr/bin/ruby1.8 $DAEMON $ACTION --all /etc/thin1.8
    fi

    if [ -x /usr/bin/ruby1.9.1 ]; then
        /usr/bin/ruby1.9.1 $DAEMON $ACTION --all /etc/thin1.9.1
    fi

}

case "$1" in
  start)
    run_action start
    ;;
  stop)
    run_action stop
    ;;
  restart|force-reload|reload)
    run_action restart
    ;;
  *)
    echo "Usage: $SCRIPT_NAME {start|stop|restart}" >&2
    exit 3
    ;;
esac

:

スクリプトが正しいか間違っているかはわかりませんが、コードは機能しないようです。 誰かこれを手伝ってくれませんか。 よろしくお願いします

解決策

このスクリプトをシンに使用するとよいでしょう。ただし、私の経験から言えば、起動時にアプリケーションの起動を管理するには、Foreman と upstart を併用する方が良いでしょう。動作が改善され、設定が簡単になりました。

それ以外は、スタックを理解したかどうかわかりません。Azure 上の Windows 2012 サーバー上で実行されている Ubuntu VM 上に、Ruby Web アプリケーションをデプロイしていますか?