stopped services and workdir
Signed-off-by: fbt <fbt@fleshless.org>
This commit is contained in:
parent
3ead5f0492
commit
8173828c62
20
ssm
20
ssm
|
@ -188,6 +188,8 @@ depend_ready() {
|
||||||
super_start() {
|
super_start() {
|
||||||
(( service_running )) && return 3
|
(( service_running )) && return 3
|
||||||
|
|
||||||
|
rm -f "$service_stopped_flag"
|
||||||
|
|
||||||
[[ -f "${service_command[0]}" ]] || return 9
|
[[ -f "${service_command[0]}" ]] || return 9
|
||||||
|
|
||||||
depend "${service_depends[@]}" || return 7
|
depend "${service_depends[@]}" || return 7
|
||||||
|
@ -250,6 +252,7 @@ super_stop() {
|
||||||
|
|
||||||
nullexec kill -n "$service_stop_signal" "$service_pid" || return 1
|
nullexec kill -n "$service_stop_signal" "$service_pid" || return 1
|
||||||
pid_wait "$service_pid" || return 5
|
pid_wait "$service_pid" || return 5
|
||||||
|
> "$service_stopped_flag"
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
@ -318,6 +321,8 @@ logs() { "${PAGER:-less}" "$service_logfile"; }
|
||||||
status() {
|
status() {
|
||||||
(( service_running )) && return 0
|
(( service_running )) && return 0
|
||||||
(( service_enabled )) && return 0
|
(( service_enabled )) && return 0
|
||||||
|
(( service_stopped )) && return 7
|
||||||
|
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -410,6 +415,7 @@ main() {
|
||||||
default service_reload_signal 1
|
default service_reload_signal 1
|
||||||
default service_ready_flag "$rundir/$service_name.ready"
|
default service_ready_flag "$rundir/$service_name.ready"
|
||||||
default service_enabled_flag "$rundir/$service_name.enabled"
|
default service_enabled_flag "$rundir/$service_name.enabled"
|
||||||
|
default service_stopped_flag "$rundir/$service_name.stopped"
|
||||||
|
|
||||||
# default does not support arrays
|
# default does not support arrays
|
||||||
[[ "$service_signals" ]] || service_signals=( 1 10 12 )
|
[[ "$service_signals" ]] || service_signals=( 1 10 12 )
|
||||||
|
@ -430,9 +436,20 @@ main() {
|
||||||
service_enabled=1
|
service_enabled=1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Let's see if the service was deliberately stopped
|
||||||
|
if [[ -f "$service_stopped_flag" ]]; then
|
||||||
|
# Ooh, it was.
|
||||||
|
service_stopped=1
|
||||||
|
fi
|
||||||
|
|
||||||
# Check if action is even defined
|
# Check if action is even defined
|
||||||
is_function "$2" || die 17 "Function $2 is not defined for $service_name."
|
is_function "$2" || die 17 "Function $2 is not defined for $service_name."
|
||||||
|
|
||||||
|
# cd into the workdir, if defined.
|
||||||
|
[[ "$service_workdir" ]] && {
|
||||||
|
cd "$service_workdir" || die $?
|
||||||
|
}
|
||||||
|
|
||||||
# Run pre_$action function
|
# Run pre_$action function
|
||||||
if is_function "pre_$2"; then
|
if is_function "pre_$2"; then
|
||||||
"pre_$2" || {
|
"pre_$2" || {
|
||||||
|
@ -475,7 +492,8 @@ main() {
|
||||||
else
|
else
|
||||||
result "$res" \
|
result "$res" \
|
||||||
0 "$service_name is running" \
|
0 "$service_name is running" \
|
||||||
1 "$service_name is not running"
|
1 "$service_name is not running" \
|
||||||
|
7 "$service_name was stopped"
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
Loading…
Reference in New Issue
Block a user