在 /etc/thin/ 我有几个 yml 文件。当我运行service thin stop -C /etc/thin/app.yml瘦时停止所有应用程序,而不仅仅是我指定的应用程序。
如何让我只停止/启动指定的应用程序?
更新:嗯,/etc/init.d/thin有这个:$DAEMON restart --all $CONFIG_PATH。这解释了很多。是否有更智能的 init.d 脚本?这是我的脚本:
https://gist.github.com/1003131
也可以看看:
在 /etc/thin/ 我有几个 yml 文件。当我运行service thin stop -C /etc/thin/app.yml瘦时停止所有应用程序,而不仅仅是我指定的应用程序。
如何让我只停止/启动指定的应用程序?
更新:嗯,/etc/init.d/thin有这个:$DAEMON restart --all $CONFIG_PATH。这解释了很多。是否有更智能的 init.d 脚本?这是我的脚本:
https://gist.github.com/1003131
也可以看看:
您必须编辑 /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
让我知道它是否有效;)
干杯,A.
这很奇怪,我从 gem 本身为脚本添加了一个补丁,用于下一次构建的 init 脚本,以允许在未来的安装中重新启动
重启文件) $DAEMON 重启 -C $2 ;;
但是 gem 所有者拒绝了合并,并说你可以使用瘦启动 - C /path/ 这很奇怪,因为我已经尝试了很多次并且脚本本身说 --all 并且不允许单个配置,我也尝试按照他说的做,显然它重新启动了所有脚本,因为脚本使用了所有内容,任何人都可以更清楚地了解这个https://github.com/macournoyer/thin/pull/176
我提出了另一种解决方案(我认为这更方便):
设置/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
:
使用thin restart -C /etc/thin/my_website.yml. 可以将此类语法与start,restart和stop命令一起使用。然而,thin restart(或start或stop,当然)会影响所有已注册的实例。