106 lines
2.2 KiB
Bash
106 lines
2.2 KiB
Bash
|
#!/bin/bash
|
||
|
|
||
|
# Copyright 2017 Mycroft AI Inc.
|
||
|
#
|
||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||
|
# you may not use this file except in compliance with the License.
|
||
|
# You may obtain a copy of the License at
|
||
|
#
|
||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||
|
#
|
||
|
# Unless required by applicable law or agreed to in writing, software
|
||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||
|
# See the License for the specific language governing permissions and
|
||
|
# limitations under the License.
|
||
|
|
||
|
script=${0}
|
||
|
script=${script##*/}
|
||
|
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
|
||
|
SCRIPTS="$DIR/scripts"
|
||
|
mkdir -p $SCRIPTS/logs
|
||
|
|
||
|
function help() {
|
||
|
echo "${script}: Mycroft service stopper"
|
||
|
echo "usage: ${script} [service]"
|
||
|
echo
|
||
|
echo "Service:"
|
||
|
echo " (none) ends core services: bus, audio, skills, voice"
|
||
|
echo " bus stop the Mycroft messagebus service"
|
||
|
echo " audio stop the audio playback service"
|
||
|
echo " skills stop the skill service"
|
||
|
echo " voice stop voice capture service"
|
||
|
echo
|
||
|
echo "Examples:"
|
||
|
echo " ${script}"
|
||
|
echo " ${script} audio"
|
||
|
|
||
|
exit 1
|
||
|
}
|
||
|
|
||
|
function process-running() {
|
||
|
if [[ $( ps aux | grep "[p]ython .*${1}/main.py" ) ]] ; then
|
||
|
return 0
|
||
|
else
|
||
|
return 1
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
function end-process() {
|
||
|
|
||
|
if process-running $1 ; then
|
||
|
pid=$( ps aux | grep "[p]ython .*${1}/main.py" | awk '{print $2}' )
|
||
|
kill ${pid}
|
||
|
|
||
|
c=1
|
||
|
while [ $c -le 20 ]
|
||
|
do
|
||
|
if process-running $1 ; then
|
||
|
sleep 0.1
|
||
|
(( c++ ))
|
||
|
else
|
||
|
c=999 # end loop
|
||
|
fi
|
||
|
done
|
||
|
|
||
|
if process-running $1 ; then
|
||
|
kill -9 ${pid}
|
||
|
fi
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
OPT=$1
|
||
|
shift
|
||
|
|
||
|
case ${OPT} in
|
||
|
"")
|
||
|
echo "Stopping all mycroft-core services"
|
||
|
end-process service
|
||
|
end-process skills
|
||
|
end-process audio
|
||
|
end-process speech
|
||
|
;;
|
||
|
|
||
|
"bus")
|
||
|
end-process service
|
||
|
;;
|
||
|
"audio")
|
||
|
end-process audio
|
||
|
;;
|
||
|
"skills")
|
||
|
end-process skills
|
||
|
;;
|
||
|
"voice")
|
||
|
end-process speech
|
||
|
;;
|
||
|
|
||
|
|
||
|
*)
|
||
|
help
|
||
|
exit_code=0
|
||
|
;;
|
||
|
esac
|
||
|
|