[Buildroot] [PATCH v3 09/13] package/dhcp: SysV init scripts: remove PID files after stop
Benoît Thébaudeau
benoit.thebaudeau.dev at gmail.com
Sun Oct 25 00:59:35 UTC 2015
From: Benoît Thébaudeau <benoit at wsystem.com>
These daemons do not remove their PID files, so do it manually in the
scripts.
Signed-off-by: Benoît Thébaudeau <benoit at wsystem.com>
---
Changes v2 -> v3: none.
Changes v1 -> v2:
- Rebase.
---
package/dhcp/S80dhcp-relay | 12 ++++++++++--
package/dhcp/S80dhcp-server | 12 ++++++++++--
2 files changed, 20 insertions(+), 4 deletions(-)
diff --git a/package/dhcp/S80dhcp-relay b/package/dhcp/S80dhcp-relay
index 211431b..9b8d65f 100755
--- a/package/dhcp/S80dhcp-relay
+++ b/package/dhcp/S80dhcp-relay
@@ -17,6 +17,9 @@ OPTIONS=""
CFG_FILE="/etc/default/dhcrelay"
[ -r "${CFG_FILE}" ] && . "${CFG_FILE}"
+# PID files generated by the daemon
+PID_FILES="/var/run/dhcrelay.pid /var/run/dhcrelay6.pid"
+
# Sanity checks
test -f /usr/sbin/dhcrelay || exit 0
test -n "$INTERFACES" || exit 0
@@ -38,8 +41,13 @@ case "$1" in
;;
stop)
printf "Stopping DHCP relay: "
- start-stop-daemon -K -q -x /usr/sbin/dhcrelay
- [ $? = 0 ] && echo "OK" || echo "FAIL"
+ if start-stop-daemon -K -q -x /usr/sbin/dhcrelay; then
+ # This daemon does not remove its PID file when it exits.
+ rm -f ${PID_FILES}
+ echo "OK"
+ else
+ echo "FAIL"
+ fi
;;
restart | force-reload)
$0 stop
diff --git a/package/dhcp/S80dhcp-server b/package/dhcp/S80dhcp-server
index dc9c433..1c2ff74 100755
--- a/package/dhcp/S80dhcp-server
+++ b/package/dhcp/S80dhcp-server
@@ -14,6 +14,9 @@ OPTIONS=""
CFG_FILE="/etc/default/dhcpd"
[ -r "${CFG_FILE}" ] && . "${CFG_FILE}"
+# PID files generated by the daemon
+PID_FILES="/var/run/dhcpd.pid /var/run/dhcpd6.pid"
+
# Sanity checks
test -f /usr/sbin/dhcpd || exit 0
test -f /etc/dhcp/dhcpd.conf || exit 0
@@ -28,8 +31,13 @@ case "$1" in
;;
stop)
printf "Stopping DHCP server: "
- start-stop-daemon -K -q -x /usr/sbin/dhcpd
- [ $? = 0 ] && echo "OK" || echo "FAIL"
+ if start-stop-daemon -K -q -x /usr/sbin/dhcpd; then
+ # This daemon does not remove its PID file when it exits.
+ rm -f ${PID_FILES}
+ echo "OK"
+ else
+ echo "FAIL"
+ fi
;;
restart | force-reload)
$0 stop
--
2.1.4
More information about the buildroot
mailing list