diff mbox series

[v2] package/mpd: rebase init script on layout introduced by openssh

Message ID 20240721173604.13824-1-br015@umbiko.net
State Accepted
Headers show
Series [v2] package/mpd: rebase init script on layout introduced by openssh | expand

Commit Message

Andreas Ziegler July 21, 2024, 5:36 p.m. UTC
Rebase S95mpd on commit 1f743f4 (package/openssh: tidy up init script)

$ utils/check-package package/mpd/S95mpd 
61 lines processed
0 warnings generated

(smoke test on live system)

Signed-off-by: Andreas Ziegler <br015@umbiko.net>
---
Changes v1 -> v2
 - use --pidfile in startup of service [Thomas Petazzoni]

 package/mpd/S95mpd | 64 +++++++++++++++++++++++++++++++++-------------
 1 file changed, 46 insertions(+), 18 deletions(-)

Comments

Thomas Petazzoni July 22, 2024, 12:15 p.m. UTC | #1
On Sun, 21 Jul 2024 19:36:04 +0200
Andreas Ziegler <br015@umbiko.net> wrote:

> Rebase S95mpd on commit 1f743f4 (package/openssh: tidy up init script)
> 
> $ utils/check-package package/mpd/S95mpd 
> 61 lines processed
> 0 warnings generated
> 
> (smoke test on live system)
> 
> Signed-off-by: Andreas Ziegler <br015@umbiko.net>
> ---
> Changes v1 -> v2
>  - use --pidfile in startup of service [Thomas Petazzoni]

Applied to master, thanks.

Thomas
diff mbox series

Patch

diff --git a/package/mpd/S95mpd b/package/mpd/S95mpd
index a258930b3e..ac971e04a2 100644
--- a/package/mpd/S95mpd
+++ b/package/mpd/S95mpd
@@ -1,33 +1,61 @@ 
 #!/bin/sh
+#
+# S95mpd	Starts Music Player daemon.
+#
+# shellcheck disable=SC2317 # functions are called via variable
+
+DAEMON="mpd"
+PIDFILE="/var/run/$DAEMON.pid"
 
 # Sanity checks
-test -f /etc/mpd.conf || exit 0
+[ -f /etc/$DAEMON.conf ] || exit 0
 
 start() {
-	printf "Starting mpd: "
-	start-stop-daemon --start --quiet --background --exec /usr/bin/mpd \
-		&& echo "OK" || echo "FAIL"
+	printf "Starting %s: " "$DAEMON"
+	start-stop-daemon --start --pidfile "$PIDFILE" \
+		--exec "/usr/bin/$DAEMON"
+	status=$?
+	if [ "$status" -eq 0 ]; then
+		echo "OK"
+	else
+		echo "FAIL"
+	fi
+	return "$status"
 }
 
 stop() {
-	printf "Stopping mpd: "
-	start-stop-daemon --stop --quiet --pidfile /var/run/mpd.pid \
-		&& echo "OK" || echo "FAIL"
+	printf "Stopping %s: " "$DAEMON"
+	start-stop-daemon --stop --pidfile "$PIDFILE" \
+		--exec "/usr/bin/$DAEMON"
+	status=$?
+	if [ "$status" -eq 0 ]; then
+		echo "OK"
+	else
+		echo "FAIL"
+	fi
+	# $DAEMON deletes its PID file on exit, wait for it to be gone
+	while [ -f "$PIDFILE" ]; do
+		sleep 0.1
+	done
+	return "$status"
+}
+
+restart() {
+	stop
+	start
+}
+
+reload() {
+	restart
 }
 
 case "$1" in
-	start)
-		start
-		;;
-	stop)
-		stop
-		;;
-	restart|reload)
-		stop
-		sleep 1
-		start
+	start|stop|reload|restart)
+		"$1"
 		;;
 	*)
-		echo "Usage: $0 {start|stop|restart}"
+		echo "Usage: $0 {start|stop|reload|restart}"
 		exit 1
 esac
+
+exit $?