105 lines
2.1 KiB
Bash
Executable File
105 lines
2.1 KiB
Bash
Executable File
#!/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
|
|
;;
|
|
esac
|
|
|