如何开始只针对一个应用程序进行精简?

发布于 2024-11-08 12:38:05 字数 490 浏览 4 评论 0原文

在 /etc/thin/ 中我有几个 yml 文件。当我运行 service Thin stop -C /etc/thin/app.yml Thin 时,会停止所有应用程序,而不是仅停止我指定的应用程序。

如何才能仅停止/启动指定的应用程序?

更新:嗯,在 /etc/init.d/thin 中有这样的内容:$DAEMON restart --all $CONFIG_PATH。这解释了很多。有更智能的 init.d 脚本吗?这是我的脚本:

https://gist.github.com/1003131

另请参阅:

使用瘦即服务运行 Rails 应用

In /etc/thin/ I've got several yml files. When I run service thin stop -C /etc/thin/app.yml thin stops all applications, instead of only the one I specified.

How do I get thin to stop/start only the specified application?

UPDATE: Hmm, in /etc/init.d/thin there's this: $DAEMON restart --all $CONFIG_PATH. That explains a lot. Are there smarter init.d scripts? This is my script:

https://gist.github.com/1003131

See also:

Running Rails apps with thin as a service

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

捂风挽笑 2024-11-15 12:38:05

您必须编辑 /etc/init.d/thin 添加新操作或修改“重新启动”操作。

如您所见,--all $CONFIG_PATH 将命令发送到所有瘦实例。

将初始化脚本粘贴到某处,我们可以找到一个不错的解决方案;)

更新:

尝试添加以下行,下面

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

让我知道它是否有效;)

干杯,
一个。

you have to edit /etc/init.d/thin adding a new action or modifying the "restart" action.

as you can see, --all $CONFIG_PATH sends the command to all thin instances.

paste the init script somewhere, we can find a decent solution ;)

UPDATE:

try to add the following lines, below this:

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

I didn't tried it, but it should work well. this is a really simple solution (no error checking), we've added 2 new actions that must be called as:

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

let me know if it works ;)

cheers,
A.

饮惑 2024-11-15 12:38:05

我提出了另一个解决方案(我认为更精简方便):

  1. 设置 /etc/init.d/thin 文件的内容以使用我的修复:

    <前><代码>#!/bin/sh
    ### 开始初始化信息
    # 提供:薄
    # 必需启动:$local_fs $remote_fs
    # 必需停止:$local_fs $remote_fs
    # 默认开始:2 3 4 5
    # 默认停止:S 0 1 6
    # 简短描述:精简初始化脚本
    # 描述:薄
    ### 结束初始化信息

    # 原作者:福雷斯特·罗伯逊

    # 不要“设置-e”

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

    # 如果包没有安装则退出
    [ -x "$DAEMON" ] ||出口0

    if [ "X$2" = X ] || [“X$3”=X];然后
    INSTANCES="--全部 $CONFIG_PATH"
    别的
    实例=“-C $3”

    案例“$1”
    开始)
    $DAEMON 启动 $INSTANCES
    ;;
    停止)
    $DAEMON 停止 $INSTANCES
    ;;
    重新启动)
    $DAEMON 重新启动 $INSTANCES
    ;;
    *)
    echo "用法: $SCRIPT_NAME {start|stop|restart} (-C config_file.yml)" >&2
    3号出口
    ;;
    埃萨克

  2. 使用 thin restart -C /etc/thin/ my_website.yml。可以将此类语法与 startrestartstop 命令一起使用。然而,thin restart(或者startstop,当然)会导致所有注册的实例。

I propose another solution (which i think is more thin-convenient):

  1. set the content of your /etc/init.d/thin file to use my fixes:

    #!/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. Use thin restart -C /etc/thin/my_website.yml. It is possible to use such syntax with start, restart and stop commands. Yet, thin restart (or start or stop, of course) would inflict all the instances registered.

琉璃繁缕 2024-11-15 12:38:05

这很奇怪,我从 gem 本身为下一个构建的 init 脚本添加了一个补丁,以允许在将来的安装中重新启动

(重新启动文件)
$DAEMON 重新启动 -C $2
;;

但宝石所有者拒绝合并并说你可以使用瘦启动 - C /path/ 这很奇怪,因为我已经尝试了很多并且脚本本身说 --all 并且不允许单个配置,
我也尝试按照他说的做,显然它重新启动了所有,因为脚本使用了所有,任何人都可以对此提供更多说明 https://github.com/macournoyer/thin/pull/176

This is weird, I added a patch to the script from the gem itself for the init script for the next build to allow a single restart on future installations

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

but the gem owner refused the merge and said you can use thin start - C /path/ which is weird, because I've tried it a lot and the script itself says --all and no single config is allowed,
I've also tried doing what he said and obviously it restarted all since the script uses all, can anyone shed more light to this https://github.com/macournoyer/thin/pull/176

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文