[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v2 5/5] init/NetBSD: move xenbackendd to xend init script



On 07/26/12 21:54, Roger Pau Monne wrote:

> xenbackendd is not needed by the xl toolstack, so move it's launch to
> the xend script.
> 
> We have to iterate until we are sure there are no xend processes left,
> since doing a single pkill usually leaves xend processes running.
> 
> Changes since v1:
> 
>  * Use pgrep and pkill instead of the convoluted shell expression.
> 
> Cc: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
> Cc: Christoph Egger <Christoph.Egger@xxxxxxx>


Acked-by: Christoph Egger <Christoph.Egger@xxxxxxx>

> Signed-off-by: Roger Pau Monne <roger.pau@xxxxxxxxxx>
> ---
>  tools/hotplug/NetBSD/rc.d/xencommons |   29 ++---------------
>  tools/hotplug/NetBSD/rc.d/xend       |   55 +++++++++++++++++++++++++++++++--
>  2 files changed, 55 insertions(+), 29 deletions(-)
> 
> diff --git a/tools/hotplug/NetBSD/rc.d/xencommons 
> b/tools/hotplug/NetBSD/rc.d/xencommons
> index c0d87bf..fe4c9ac 100644
> --- a/tools/hotplug/NetBSD/rc.d/xencommons
> +++ b/tools/hotplug/NetBSD/rc.d/xencommons
> @@ -29,8 +29,6 @@ XENBACKENDD_PIDFILE="/var/run/xenbackendd.pid"
>  
>  xen_precmd()
>  {
> -     mkdir -p /var/run/xend || exit 1
> -     mkdir -p /var/run/xend/boot || exit 1
>       mkdir -p /var/run/xenstored || exit 1
>  }
>  
> @@ -46,7 +44,7 @@ xen_startcmd()
>                       XENSTORED_ROOTDIR="/var/lib/xenstored"
>               fi
>               rm -f ${XENSTORED_ROOTDIR}/tdb* >/dev/null 2>&1
> -             printf "Starting xenservices: xenstored, xenconsoled, 
> xenbackendd."
> +             printf "Starting xenservices: xenstored, xenconsoled."
>               XENSTORED_ARGS=" --pid-file ${XENSTORED_PIDFILE}"
>               if [ -n "${XENSTORED_TRACE}" ]; then
>                       XENSTORED_ARGS="${XENSTORED_ARGS} -T 
> /var/log/xen/xenstored-trace.log"
> @@ -58,7 +56,7 @@ xen_startcmd()
>                       sleep 1
>               done
>       else
> -             printf "Starting xenservices: xenconsoled, xenbackendd."
> +             printf "Starting xenservices: xenconsoled."
>       fi
>  
>       XENCONSOLED_ARGS=""
> @@ -68,13 +66,6 @@ xen_startcmd()
>  
>       ${SBINDIR}/xenconsoled ${XENCONSOLED_ARGS}
>  
> -     XENBACKENDD_ARGS=""
> -     if [ -n "${XENBACKENDD_DEBUG}" ]; then
> -             XENBACKENDD_ARGS="${XENBACKENDD_ARGS} -d"
> -     fi
> -
> -     ${SBINDIR}/xenbackendd ${XENBACKENDD_ARGS}
> -
>       printf "\n"
>  
>       printf "Setting domain 0 name.\n"
> @@ -87,8 +78,6 @@ xen_stop()
>       printf "Stopping xencommons.\n"
>       printf "WARNING: Not stopping xenstored, as it cannot be restarted.\n"
>  
> -     rc_pid=$(check_pidfile ${XENBACKENDD_PIDFILE} ${SBINDIR}/xenbackendd)
> -     pids="$pids $rc_pid"
>       rc_pid=$(check_pidfile ${XENCONSOLED_PIDFILE} ${SBINDIR}/xenconsoled)
>       pids="$pids $rc_pid"
>  
> @@ -108,17 +97,12 @@ xen_status()
>               pids="$pids $xenconsoled_pid"
>       fi
>  
> -     xenbackend_pid=$(check_pidfile ${XENBACKENDD_PIDFILE} 
> ${SBINDIR}/xenbackendd)
> -     if test -n ${xenbackend_pid}; then
> -             pids="$pids $xenbackend_pid"
> -     fi
> -
> -     if test -n "$xenbackend_pid" -a -n "$xenconsoled_pid" -a -n 
> "$xenstored_pid";
> +     if test -n "$xenconsoled_pid" -a -n "$xenstored_pid";
>       then
>               echo "xencommons are running as pids $pids."
>               return 0
>       fi
> -     if test -z "$xenbackend_pid" -a -z "$xenconsoled_pid" -a -z 
> "$xenstored_pid";
> +     if test -z "$xenconsoled_pid" -a -z "$xenstored_pid";
>       then
>               echo "xencommons are not running."
>               return 0
> @@ -134,11 +118,6 @@ xen_status()
>       else
>               echo "xenconsoled is not running."
>       fi
> -     if test -n $xenbackend_pid; then
> -             echo "xenbackendd is running as pid $xenbackend_pid."
> -     else
> -             echo "xenbackendd is not running."
> -     fi
>  }
>  
>  load_rc_config $name
> diff --git a/tools/hotplug/NetBSD/rc.d/xend b/tools/hotplug/NetBSD/rc.d/xend
> index ead9ee0..ac5f2ca 100644
> --- a/tools/hotplug/NetBSD/rc.d/xend
> +++ b/tools/hotplug/NetBSD/rc.d/xend
> @@ -15,10 +15,57 @@ export PATH
>  
>  name="xend"
>  rcvar=$name
> -command="${SBINDIR}/xend"
> -command_args="start"
> -command_interpreter=`head -n 1 ${command} | awk '{ print substr($0,3) }'`
> -sig_stop="SIGKILL"
> +start_precmd="xend_precmd"
> +start_cmd="xend_startcmd"
> +stop_cmd="xend_stop"
> +status_cmd="xend_status"
> +extra_commands="status"
> +required_files="/kern/xen/privcmd"
> +
> +XENBACKENDD_PIDFILE="/var/run/xenbackendd.pid"
> +#XENBACKENDD_DEBUG=1
> +
> +xend_precmd()
> +{
> +     mkdir -p /var/run/xend || exit 1
> +     mkdir -p /var/run/xend/boot || exit 1
> +}
> +
> +xend_startcmd()
> +{
> +     printf "Starting xenbackendd.\n"
> +
> +     XENBACKENDD_ARGS=""
> +     if [ -n "${XENBACKENDD_DEBUG}" ]; then
> +             XENBACKENDD_ARGS="${XENBACKENDD_ARGS} -d"
> +     fi
> +
> +     ${SBINDIR}/xenbackendd ${XENBACKENDD_ARGS}
> +
> +     printf "Starting xend.\n"
> +     ${SBINDIR}/xend start >/dev/null 2>&1
> +}
> +
> +xend_stop()
> +{
> +     printf "Stopping xenbackendd, xend\n"
> +     xb_pid=$(check_pidfile ${XENBACKENDD_PIDFILE} ${SBINDIR}/xenbackendd)
> +     if test -n "$xb_pid";
> +     then
> +             kill -${sig_stop:-TERM} $xb_pid
> +     fi
> +     while pgrep -f ${SBINDIR}/xend >/dev/null 2>&1; do
> +             pkill -${sig_stop:-KILL} -f ${SBINDIR}/xend
> +     done
> +     wait_for_pids $xb_pid
> +     rm -f /var/lock/subsys/xend /var/lock/xend /var/run/xenbackendd.pid
> +}
> +
> +xend_status()
> +{
> +     ${SBINDIR}/xend status
> +}
>  
>  load_rc_config $name
>  run_rc_command "$1"
> +



-- 
---to satisfy European Law for business letters:
Advanced Micro Devices GmbH
Einsteinring 24, 85689 Dornach b. Muenchen
Geschaeftsfuehrer: Alberto Bozzo
Sitz: Dornach, Gemeinde Aschheim, Landkreis Muenchen
Registergericht Muenchen, HRB Nr. 43632


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.