4

/ etc /thin/にいくつかのymlファイルがあります。thinを実行するservice thin stop -C /etc/thin/app.ymlと、指定したアプリケーションだけでなく、すべてのアプリケーションが停止します。

指定されたアプリケーションのみを停止/開始するためにシンになるにはどうすればよいですか?

更新:うーん、/etc/init.d/thinこれがあります:$DAEMON restart --all $CONFIG_PATH。それは多くのことを説明しています。よりスマートなinit.dスクリプトはありますか?これは私のスクリプトです:

https://gist.github.com/1003131

参照:

サービスとしてのthinでRailsアプリを実行する

4

3 に答える 3

5

/etc/init.d/thinを編集して、新しいアクションを追加するか、「再起動」アクションを変更する必要があります。

ご覧のとおり、-all$CONFIG_PATHはコマンドをすべてのシンインスタンスに送信します。

initスクリプトをどこかに貼り付ければ、適切な解決策を見つけることができます;)

アップデート:

このに次の行を追加してみてください。

restart)
  $DAEMON restart --all $CONFIG_PATH
  ;;
restart-single)
  $DAEMON restart -C $2
  ;;
stop-single)
  $DAEMON stop -C $2
  ;;

試していませんが、うまくいくはずです。これは本当に単純な解決策(エラーチェックなし)であり、次のように呼び出す必要のある2つの新しいアクションを追加しました。

service thin restart-single /etc/thin/your_app.yml
or
service thin stop-single /etc/thin/your_app.yml

それが機能するかどうか私に知らせてください;)

乾杯、A。

于 2011-06-01T14:28:33.630 に答える
0

私は別の解決策を提案します(私はそれがより薄いと思います-便利です):

  1. /etc/init.d/thin私の修正を使用するようにファイルの内容を設定します。

    #!/bin/sh
    ### BEGIN INIT INFO
    # Provides:          thin
    # Required-Start:    $local_fs $remote_fs
    # Required-Stop:     $local_fs $remote_fs
    # Default-Start:     2 3 4 5
    # Default-Stop:      S 0 1 6
    # Short-Description: thin initscript
    # Description:       thin
    ### END INIT INFO
    
    # Original author: Forrest Robertson
    
    # Do NOT "set -e"
    
    DAEMON=/usr/local/bin/thin
    SCRIPT_NAME=/etc/init.d/thin
    CONFIG_PATH=/etc/thin
    
    # Exit if the package is not installed
    [ -x "$DAEMON" ] || exit 0
    
    if [ "X$2" = X ] || [ "X$3" = X ]; then
        INSTANCES="--all $CONFIG_PATH"
    else
        INSTANCES="-C $3"
    fi
    
    case "$1" in
      start)
      $DAEMON start $INSTANCES 
      ;;
      stop)
      $DAEMON stop $INSTANCES
      ;;
      restart)
      $DAEMON restart $INSTANCES
      ;;
      *)
      echo "Usage: $SCRIPT_NAME {start|stop|restart} (-C config_file.yml)" >&2
      exit 3
      ;;
    esac
    
    :
    
  2. を使用しthin restart -C /etc/thin/my_website.ymlます。このような構文はstartrestartおよびstopコマンドで使用できます。それでも、thin restart(またはstartstopもちろん)は、登録されているすべてのインスタンスに影響を与えます。

于 2012-12-20T11:00:09.753 に答える
0

これは奇妙です。次のビルドのinitスクリプト用に、gem自体からスクリプトにパッチを追加して、将来のインストールで1回再起動できるようにしました。

restart-file)$ DAEMON restart -C $ 2 ;;

しかし、gemの所有者はマージを拒否し、シンスタートを使用できると言いました-C / path /これは奇妙です、私はそれをたくさん試しましたが、スクリプト自体は--allと言っているので、単一の構成は許可されていません、私も彼が言ったことを試してみましたが、スクリプトがすべてを使用しているため、明らかにすべてが再起動しました。誰でもこのhttps://github.com/macournoyer/thin/pull/176にもっと光を当てることができますか

于 2013-05-21T07:05:47.653 に答える