[英]How to start thin for only one application?
在/ 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
也可以看看:
你必須編輯/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
;;
我沒試過,但它應該運作良好。 這是一個非常簡單的解決方案(沒有錯誤檢查),我們添加了兩個必須被調用的新操作:
service thin restart-single /etc/thin/your_app.yml
or
service thin stop-single /etc/thin/your_app.yml
讓我知道它是否有效;)
歡呼聲,A.
我提出另一個解決方案(我覺得更簡單方便):
設置/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
)會造成所有注冊的實例。
這很奇怪,我從gem本身為腳本添加了一個補丁,用於下一個版本的init腳本,以便在將來的安裝中重新啟動
restart-file)$ DAEMON restart -C $ 2 ;;
但寶石所有者拒絕合並,並表示你可以使用瘦啟動 - C / path /這很奇怪,因為我已經嘗試了很多而且腳本本身說 - 所有並且不允許單個配置,我也是嘗試做他說的話,顯然它重新開始,因為腳本使用了所有,任何人都可以為這個https://github.com/macournoyer/thin/pull/176更多的光
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.