use sendKillSequence instead of ctx-kill
[util-vserver.git] / util-vserver / scripts / functions
index f9215f7..69466ba 100644 (file)
@@ -154,6 +154,9 @@ function _pkgSetVarsApt
        findDir APTCACHEDIR  "$VDIR"/var/cache/apt
        findDir APTARCHIVDIR "$VDIR"/var/cache/apt/archives /var/cache/apt/archives
     fi
+
+    findFile APT_CONFIG "$APTETCDIR"/apt.conf ""
+    test -z "$APT_CONFIG" || export APT_CONFIG
 }
 
 function _pkgMountBase
@@ -237,17 +240,20 @@ function pkgInit
 function getAllVservers
 {
     local i
-    declare -a tmp=()
+    declare -a _tmp=()
 
     for i in $CONFDIR/*; do
        test   -d "$i"          || continue
        test ! -e "$i"/disabled || continue
        test   -d "$i"/vdir     || continue
+       case "$i" in
+           *.~*~) continue;;
+       esac
 
-       tmp=( "${tmp[@]}" "${i##$CONFDIR/}")
+       _tmp=( "${_tmp[@]}" "${i##$CONFDIR/}")
     done
 
-    eval $1=\$tmp
+    eval $1='( "${_tmp[@]}" )'
 }
 
 ## Usage: getVserverCtx <vdir> <result-varname> [<procnumber-varname> [<do-cleanup>]]
@@ -257,7 +263,7 @@ function getVserverStatus
     eval read "$2" <"$1"/run
 
     test "$3"        || return 0
-    local _tmp=$($_VPS ax | $_AWK '{print $2}' | $_GREP -x "$ctx" | $_WC -l )
+    local _tmp=$($_VPS ax | $_AWK '{print $2}' | $_GREP -x "$2" | $_WC -l )
     eval "$3"=\$_tmp
 
     test "$4" -a $_tmp = 0 || return 0
@@ -267,6 +273,13 @@ function getVserverStatus
     return 0
 }
 
+## Usage: isCtxRunning <ctx>
+function isCtxRunning
+{
+    local _tmp=$($_VPS ax | $_AWK '{print $2}' | $_GREP -x "$1" | $_WC -l )
+    test $_tmp -gt 0
+}
+
 ## Usage: isVserverRunning <vdir> [<ctx-varname>]
 function isVserverRunning
 {
@@ -293,3 +306,32 @@ function getFileArray
     local IFS=$_VS_NEWLINE
     eval "$1"='( $(< "$2") )'
 }
+
+function checkComponents
+{
+    local      i
+    local      msg=$1
+    local      x_failed=
+
+    shift
+    
+    for i; do
+       local failed=
+       case "$i" in
+           core)       test -x "$_CHBIND"           || failed=1;;
+           build)      test -x "$_VSERVER_BUILD"    || failed=1;;
+           sysv)       test -x "$INITRDDIR/vserver" || failed=1;;
+           devel)      test -d "$INCLUDEDIR/vserver.h" || failed=1;;
+           *)          echo "Unknown component '$i'"
+                       return false
+                       ;;
+       esac
+
+       test -z "$failed" || {
+           echo "$msg: $i"
+           x_failed=1
+       }
+    done
+
+    test -z "$x_failed"
+}