You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
84 lines
1.4 KiB
84 lines
1.4 KiB
#!/usr/bin/env bash
|
|
|
|
set -eu
|
|
|
|
QUIET=0
|
|
SILENT=0
|
|
|
|
synopsis() {
|
|
cat << EOF
|
|
Usage : `basename $0` [-h] [-q] [-s] system
|
|
EOF
|
|
}
|
|
|
|
help() {
|
|
cat << EOF
|
|
|
|
`basename $0` tue tous les processus associés au système.
|
|
|
|
`synopsis`
|
|
|
|
ATTENTION : cette action correspond à une coupure d'alimentation.
|
|
Dans le cas d'un système utilisant une union de systèmes de
|
|
fichiers, les modifications seront perdues !
|
|
|
|
-h : affiche cette aide
|
|
-q : n'affiche pas les PIDS des processus tué.
|
|
-s : pas d'erreur si le système n'est pas lancé.
|
|
|
|
EOF
|
|
}
|
|
|
|
usage() {
|
|
synopsis
|
|
exit 1
|
|
}
|
|
|
|
args() {
|
|
local opt
|
|
while getopts "hqs" opt; do
|
|
case $opt in
|
|
h) help; exit 0;;
|
|
q) QUIET=1;;
|
|
s) SILENT=1;;
|
|
?) usage;;
|
|
esac
|
|
done
|
|
shift $(($OPTIND - 1))
|
|
[ $# -ne 1 ] && usage
|
|
|
|
GUEST_NAME="$1"
|
|
if echo $GUEST_NAME | grep -q '/'; then
|
|
error "$GUEST_NAME est un nom de système invalide"
|
|
fi
|
|
}
|
|
|
|
killSystem() {
|
|
pids="$(ps -w -w ux | grep -E $GUEST_NAME[-]$USER | tr -s ' ' | cut -d ' ' -f 2)"
|
|
if [ -z "$pids" ]; then
|
|
if [ $SILENT = 1 ]; then
|
|
exit 0
|
|
fi
|
|
echo "Le système virtuel $GUEST_NAME.conf n'est pas lancé !" >&2
|
|
exit 1
|
|
fi
|
|
|
|
[ $QUIET = 0 ] && \
|
|
echo "Kill $GUEST_NAME: Suppression de(s) processus : "$pids
|
|
|
|
kill $pids 2> /dev/null
|
|
|
|
#rm -f $TMPDIR/vdn-vnc-$USER-$GUEST_NAME-fifo
|
|
rm -f $TMPDIR/vdn-vnc-$USER-$GUEST_NAME-raw-socket
|
|
}
|
|
|
|
|
|
# Programme principal
|
|
|
|
GUEST_OWNER=$USER
|
|
VDN_PATH=$(readlink -f $(dirname $0)/..); . $VDN_PATH/bin/functions.sh
|
|
|
|
args "$@"
|
|
|
|
killSystem
|