xref: /openbmc/openbmc/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod-2.x/gpio-manager.init (revision 8460358c3d24c71d9d38fd126c745854a6301564)
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