54 lines
924 B
Bash
54 lines
924 B
Bash
|
#! /usr/bin/env bash
|
||
|
#
|
||
|
# wmstartup service common functions
|
||
|
# Copyright (C) 2018 salt <salt@lap-th-e560-0>
|
||
|
#
|
||
|
# Distributed under terms of the MIT license.
|
||
|
#
|
||
|
|
||
|
service_name="unnamed_service"
|
||
|
service_process="true"
|
||
|
|
||
|
function svc_log() {
|
||
|
if [ -z ${1+x} ]; then return 1; fi
|
||
|
dtf_log "$service_name: $1"
|
||
|
}
|
||
|
|
||
|
function prestart() {
|
||
|
if ! which $service_process > /dev/null 2>&1; then
|
||
|
svc_log "Could not find process"
|
||
|
return 1
|
||
|
fi
|
||
|
return 0
|
||
|
}
|
||
|
|
||
|
function start() {
|
||
|
if ! prestart; then
|
||
|
svc_log "Failed pre-start checks"
|
||
|
return 1
|
||
|
fi
|
||
|
svc_log "Starting"
|
||
|
$service_process > /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
|
||
|
return $?
|
||
|
}
|
||
|
|