#!/bin/bash binary="tsclient" arguments="" cd "$(dirname $0)" #export LD_LIBRARY_PATH="../wxBase-2.8.12/lib:../wxxml2/lib" #------------------------------------------------------------------------------- CHILDS=() process_running() { CHILDS=`pgrep -d" " -x ${binary}` if [ ! -z "${CHILDS}" ]; then return 1 fi return 0 } #------------------------------------------------------------------------------- start() { local retval=0 process_running local state=$? if [ ${state} -eq 0 ]; then retval=1 ./${binary} ${arguments} sleep 1 process_running state=$? if [ ${state} -eq 1 ]; then ${OUTPUT} && echo "Process started..." retval=1 else ${OUTPUT} && echo "Couldn't start the process" fi else ${OUTPUT} && echo "Process already running" fi return ${retval} } #------------------------------------------------------------------------------- stop() { local retval=0 process_running local state=$? if [ ${state} -eq 1 ]; then pkill -TERM -x ${binary} sleep 1 process_running state=$? if [ ${state} -eq 1 ]; then pkill -9 -x ${binary} fi ${OUTPUT} && echo "Process stopped" retval=1 else ${OUTPUT} && echo "Process not running" fi return ${retval} } #------------------------------------------------------------------------------- RETVAL=0 OUTPUT=true if [ ! -z "$2" -a "$2" = "quiet" ]; then OUTPUT=false fi case "$1" in start) start RETVAL=$? ;; stop) stop RETVAL=$? ;; restart) stop start RETVAL=$? ;; status) process_running state=$? if [ ${state} -eq 1 ]; then ${OUTPUT} && echo "Process is running (${CHILDS})..." else ${OUTPUT} && echo "Process is stopped" fi ;; esac exit ${RETVAL}