#! /bin/bash if [[ "${1}" == 'start' ]] then cd /home/pbot ./envbot & envbot_pid=$! ./pbot-ng_fixer & pbotng_fixer_pid=$! ./labs_change_detector & labs_change_detector_pid=$! function closedown { echo "[pbot]: received SIGINT/SIGTERM" echo "[pbot]: killing envbot($envbot_pid)" kill $envbot_pid echo "[pbot]: killing pbot-ng_fixer($pbotng_fixer_pid)" kill $pbotng_fixer_pid echo "[pbot]: killing labs_change_detector($labs_change_detector_pid)" kill $labs_change_detector_pid exit } trap "closedown" SIGINT SIGTERM while true do sleep 5h done elif [[ "${1}" == 'stop' ]] then echo "[pbot]: stopping per 'stop' command" while true do pid=$(pgrep -u pbot | head -1) if [[ -n "${pid}" ]] then echo "[pbot]: killing '$(ps -p ${pid} -o comm=)'(${pid})" kill ${pid} &>/dev/null sleep 1 else exit fi done else echo "first arg must be \`start' or \`stop'" fi