#! /usr/bin/env bash # # wmstartup service common functions # Copyright (C) 2018 salt # # Distributed under terms of the MIT license. # service_name="unnamed_service" service_process="true" service_kill_on_reload="true" service_flags="" function svc_log() { if [ -z ${1+x} ]; then return 1; fi dtf_log "$service_name: $1" } function prestart() { if pgrep $service_process > /dev/null 2>&1; then svc_log "Already running" return 1 fi if ! which $service_process > /dev/null 2>&1; then svc_log "Could not find process" return 1 fi if ! prestart-extra; then return 1 fi return 0 } function prestart-extra() { return 0 } function start() { svc_log "Starting" $service_process $service_flags > /dev/null 2>&1 & return 0 } function stop() { svc_log "Stopping" killall $service_process & for i in {1..100}; do if ! isup; then break; fi sleep 0.01 if (( $i > 99 )); then svc_log "Stopping with prejudice" killall -9 $service_process fi done return $? } function isup() { pgrep "$service_process" > /dev/null 2>&1 isup-extra $? return $? } function isup-extra() { return $1 }