summarylogtreecommitdiffstats
path: root/uksmd.initd
blob: 46d29d4332dad6347d0ef6045f5fdb1c600e0a70 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/usr/bin/openrc-run
# OpenRC uksmd script

_DAEMON="/usr/sbin/uksmd"
_DAEMON_ARGS=()

extra_started_commands="status"

depend() {
  true
}

start() {
  ebegin "Starting $(basename "${_DAEMON}"): Executing ${_DAEMON} ${_DAEMON_ARGS[@]}"
  start-stop-daemon --start --exec "${_DAEMON}" -- "${_DAEMON_ARGS[@]}"
  eend "$?"
}

stop() {
  ebegin "Stopping $(basename "${_DAEMON}")"
  start-stop-daemon --stop --exec "${_DAEMON}" || {
    sleep 1
    _pids="$(pidof "${_DAEMON}")"
    for _pid in ${_pids}; do
      kill -9 "${_pid}" &> /dev/null
    done
  }
  sleep 1
  _running="$(pidof "${_DAEMON}" | tr ' ' '\n' | wc -l)"
  if [ ${_running} -gt 0 ]; then
    eerror "Failed to stop or kill all ${_DAEMON} processes."
    eerror "Remaining processes: ${_running}."
  fi
  eend "${_running}"
}

status() {
  ebegin "Querying status of $(basename "${_DAEMON}")"
  _pids="$(pidof "${_DAEMON}")"
  printf '%s\n' "Running $(basename "${_DAEMON}")-process(es):" "${_pids}"
  eend "$?"
}