From e80dbf50a89c0b84174e566b85af9593410becfb Mon Sep 17 00:00:00 2001 From: Julien Moutinho Date: Tue, 19 Mar 2013 23:54:13 +0100 Subject: [PATCH] Correction : vm_hosted : rule_runit_configure . --- .../fcgi.80.git.heureux-cyclage.org/configure | 2 +- etc/sv/fcgi.80.git.heureux-cyclage.org/run | 2 +- vm_hosted | 34 +++++++++++++------ 3 files changed, 25 insertions(+), 13 deletions(-) diff --git a/etc/sv/fcgi.80.git.heureux-cyclage.org/configure b/etc/sv/fcgi.80.git.heureux-cyclage.org/configure index ee22eba..23bd42e 100755 --- a/etc/sv/fcgi.80.git.heureux-cyclage.org/configure +++ b/etc/sv/fcgi.80.git.heureux-cyclage.org/configure @@ -1,5 +1,5 @@ #!/bin/sh -efux -sv=$(basename "$(cd "$(dirname "$0")" && cd -)") +sv=$(basename "$(cd "$(dirname "$0")" && pwd)") IFS=. read -r service site <<-EOF $sv EOF diff --git a/etc/sv/fcgi.80.git.heureux-cyclage.org/run b/etc/sv/fcgi.80.git.heureux-cyclage.org/run index fc32089..530ee5a 100755 --- a/etc/sv/fcgi.80.git.heureux-cyclage.org/run +++ b/etc/sv/fcgi.80.git.heureux-cyclage.org/run @@ -1,6 +1,6 @@ #!/bin/sh -efux exec 2>&1 -sv=$(basename "$(cd "$(dirname "$0")" && cd -)") +sv=$(basename "$(cd "$(dirname "$0")" && pwd)") IFS=. read -r service site <<-EOF $sv EOF diff --git a/vm_hosted b/vm_hosted index 8a6c8d2..9743830 100755 --- a/vm_hosted +++ b/vm_hosted @@ -7,6 +7,7 @@ while test -L "$tool" tool=${tool%/*} . "$tool"/lib/rule.sh . "$tool"/etc/vm.sh +export TRACE=1 rule_help () { # SYNTAX: [--hidden] local hidden; [ ${1:+set} ] || hidden=set @@ -1117,10 +1118,20 @@ rule_procmail_configure () { rule_runit_configure () { rule apt_get_install runit local -; set +f - rm -f /etc/service/* - # NOTE: runsvdir éteindra les services qui n'apparaîtront plus ici. - for sv in "$tool"/etc/sv/* - do sv=${sv#"$tool"/etc/sv/} + for sv in ${1-/etc/service/*} + # NOTE: stoppe les services en retenant leur status de départ + do sv=$(basename "$sv") + local sv_hash=$(printf %s "$sv" | sha1sum | cut -f 1 -d ' ') + local sv_status + IFS= read -r sv_status_$sv_hash <<-EOF + $(sv status "$sv") + EOF + rm -f /etc/service/"$sv" + done + for sv in ${1-"$tool"/etc/sv/*} + # NOTE: configure et (re-)démarre les services + do sv=$(basename "$sv") + local sv_hash=$(printf %s "$sv" | sha1sum | cut -f 1 -d ' ') sudo install -d -m 770 -o root -g root \ /etc/sv/"$sv" sudo install -m 770 -o root -g root \ @@ -1134,13 +1145,14 @@ rule_runit_configure () { "$tool"/etc/sv/"$sv"/log/run \ /etc/sv/"$sv"/log/run fi - if test ! -x "$tool"/etc/sv/"$sv"/configure || - "$tool"/etc/sv/"$sv"/configure - then - ln -fns ../sv/"$sv" /etc/service/"$sv" - test ! -e /etc/sv/"$sv"/supervise/ok || - sv restart "$sv" - fi + test ! -x "$tool"/etc/sv/"$sv"/configure || + "$tool"/etc/sv/"$sv"/configure + ln -fns ../sv/"$sv" /etc/service/"$sv" + eval local sv_status=\"\${sv_status_$sv_hash-}\" + case $sv_status in + ("") sv start "$sv";; + (run:*) sv restart "$sv";; + esac done } rule_ssh_configure () { -- 2.20.1