[Buildroot] [PATCH 1/1] package/restorecond: Fix restorecond init script.
Adam Duskett
aduskett at gmail.com
Tue Feb 4 10:09:42 UTC 2020
The current restorecond init script has several issues which prevent
it from starting:
- Busybox ash will error at "test $EUID = 0 || exit 4" with the error
"sh: 0: unknown operand"
- start-stop-daemon is not used
- Failures happen silently.
Add our own S20restorecond to the package file and use that instead.
Signed-off-by: Adam Duskett <aduskett at gmail.com>
---
package/restorecond/S20restorecond | 45 ++++++++++++++++++++++++++++++
package/restorecond/restorecond.mk | 2 +-
2 files changed, 46 insertions(+), 1 deletion(-)
create mode 100644 package/restorecond/S20restorecond
diff --git a/package/restorecond/S20restorecond b/package/restorecond/S20restorecond
new file mode 100644
index 0000000000..1abf678177
--- /dev/null
+++ b/package/restorecond/S20restorecond
@@ -0,0 +1,45 @@
+#!/bin/sh
+RESTORECOND=/usr/sbin/restorecond
+PIDFILE=/run/restorecond.pid
+if [ -x /usr/sbin/selinuxenabled ]; then
+ if ! /usr/sbin/selinuxenabled; then
+ echo "Selinux is not enabled!"
+ exit 7
+ fi
+fi
+
+# Check that we are root ... so non-root users stop here
+if [ $EUID != 0 ]; then
+ echo "Restorecond must be ran as root!"
+ exit 4
+fi
+
+test -x /usr/sbin/restorecond || exit 5
+test -f /etc/selinux/restorecond.conf || exit 6
+
+case "$1" in
+ start)
+ echo "Starting restorecond..."
+ unset HOME MAIL USER USERNAME
+ start-stop-daemon -S -x "${RESTORECOND}" -p "${PIDFILE}"
+ ;;
+ stop)
+ echo "Stopping restorecond..."
+ start-stop-daemon -K -x "${RESTORECOND}" -p "${PIDFILE}" -o
+ ;;
+ reload|force-reload)
+ echo "Reloading restorecond..."
+ restart
+ ;;
+ restart)
+ stop
+ start
+ ;;
+ condrestart)
+ [ -e /var/lock/subsys/restorecond ] && restart
+ ;;
+ *)
+ echo "Usage: $0 {start|stop|restart|reload|force-reload|condrestart}"
+ exit 3
+ ;;
+esac
diff --git a/package/restorecond/restorecond.mk b/package/restorecond/restorecond.mk
index c519b5de2b..cb4859c2d0 100644
--- a/package/restorecond/restorecond.mk
+++ b/package/restorecond/restorecond.mk
@@ -27,7 +27,7 @@ define RESTORECOND_BUILD_CMDS
endef
define RESTORECOND_INSTALL_INIT_SYSV
- $(INSTALL) -m 0755 -D $(@D)/restorecond.init \
+ $(INSTALL) -m 0755 -D $(RESTORECOND_PKGDIR)/S20restorecond \
$(TARGET_DIR)/etc/init.d/S20restorecond
endef
--
2.24.1
More information about the buildroot
mailing list