1*8460358cSPatrick Williams#! /bin/sh 2*8460358cSPatrick Williams### BEGIN INIT INFO 3*8460358cSPatrick Williams# Provides: gpio-manager 4*8460358cSPatrick Williams# Required-Start: $remote_fs $syslog 5*8460358cSPatrick Williams# Required-Stop: $remote_fs $syslog 6*8460358cSPatrick Williams# Default-Start: 2 3 4 5 7*8460358cSPatrick Williams# Default-Stop: 1 8*8460358cSPatrick Williams# Short-Description: Centralized GPIO manager daemon 9*8460358cSPatrick Williams### END INIT INFO 10*8460358cSPatrick Williams# 11*8460358cSPatrick Williams# -*- coding: utf-8 -*- 12*8460358cSPatrick Williams# Debian init.d script for gpio-manager 13*8460358cSPatrick Williams# Copyright (c) 2024 Bartosz Golaszewski <bartosz.golaszewski@linaro.org> 14*8460358cSPatrick Williams 15*8460358cSPatrick Williams# set -e 16*8460358cSPatrick Williams 17*8460358cSPatrick Williams# Source function library. 18*8460358cSPatrick Williams. /etc/init.d/functions 19*8460358cSPatrick Williams 20*8460358cSPatrick WilliamsDAEMON=/usr/bin/gpio-manager 21*8460358cSPatrick WilliamsNAME=gpio-manager 22*8460358cSPatrick WilliamsPIDFILE=/var/run/gpio-manager/pid 23*8460358cSPatrick WilliamsDESC="GPIO manager daemon" 24*8460358cSPatrick Williams 25*8460358cSPatrick Williamstest -x $DAEMON || exit 0 26*8460358cSPatrick Williamstest "$ENABLED" != "0" || exit 0 27*8460358cSPatrick Williams 28*8460358cSPatrick Williamsdo_start() 29*8460358cSPatrick Williams{ 30*8460358cSPatrick Williams mkdir -p "`dirname $PIDFILE`" 31*8460358cSPatrick Williams if [ -e $PIDFILE ]; then 32*8460358cSPatrick Williams PIDDIR=/proc/$(cat $PIDFILE) 33*8460358cSPatrick Williams if [ -d ${PIDDIR} -a "$(readlink -f ${PIDDIR}/exe)" = "${DAEMON}" ]; then 34*8460358cSPatrick Williams echo "$DESC already started; not starting." 35*8460358cSPatrick Williams else 36*8460358cSPatrick Williams echo "Removing stale PID file $PIDFILE." 37*8460358cSPatrick Williams rm -f $PIDFILE 38*8460358cSPatrick Williams fi 39*8460358cSPatrick Williams fi 40*8460358cSPatrick Williams 41*8460358cSPatrick Williams echo -n "Starting $DESC: " 42*8460358cSPatrick Williams start-stop-daemon --user gpio-manager --background --start --quiet --make-pidfile --pidfile $PIDFILE --exec $DAEMON 43*8460358cSPatrick Williams echo "$NAME." 44*8460358cSPatrick Williams} 45*8460358cSPatrick Williams 46*8460358cSPatrick Williamsdo_stop() 47*8460358cSPatrick Williams{ 48*8460358cSPatrick Williams echo -n "Stopping $DESC: " 49*8460358cSPatrick Williams start-stop-daemon --stop --quiet --pidfile $PIDFILE 50*8460358cSPatrick Williams echo "$NAME." 51*8460358cSPatrick Williams rm -f $PIDFILE 52*8460358cSPatrick Williams} 53*8460358cSPatrick Williams 54*8460358cSPatrick Williamscase "$1" in 55*8460358cSPatrick Williams start) 56*8460358cSPatrick Williams do_start 57*8460358cSPatrick Williams ;; 58*8460358cSPatrick Williams stop) 59*8460358cSPatrick Williams do_stop 60*8460358cSPatrick Williams ;; 61*8460358cSPatrick Williams status) 62*8460358cSPatrick Williams status $DAEMON 63*8460358cSPatrick Williams exit $? 64*8460358cSPatrick Williams ;; 65*8460358cSPatrick Williams restart) 66*8460358cSPatrick Williams do_stop 67*8460358cSPatrick Williams sleep 1 68*8460358cSPatrick Williams do_start 69*8460358cSPatrick Williams ;; 70*8460358cSPatrick Williams *) 71*8460358cSPatrick Williams echo "Usage: /etc/init.d/$NAME {start|stop|status|restart}" >&2 72*8460358cSPatrick Williams exit 1 73*8460358cSPatrick Williams ;; 74*8460358cSPatrick Williamsesac 75*8460358cSPatrick Williams 76*8460358cSPatrick Williamsexit 0 77