From patchwork Sat Nov 3 18:24:26 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Carlos Santos X-Patchwork-Id: 992676 Return-Path: X-Original-To: incoming-buildroot@patchwork.ozlabs.org Delivered-To: patchwork-incoming-buildroot@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=busybox.net (client-ip=140.211.166.138; helo=whitealder.osuosl.org; envelope-from=buildroot-bounces@busybox.net; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=datacom.com.br Received: from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 42nS671vHRzB4gK for ; Sun, 4 Nov 2018 05:25:03 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id 0898D87929; Sat, 3 Nov 2018 18:25:00 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from whitealder.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id OeCG5oLAZpzf; Sat, 3 Nov 2018 18:24:49 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by whitealder.osuosl.org (Postfix) with ESMTP id 46C3C87B7B; Sat, 3 Nov 2018 18:24:49 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138]) by ash.osuosl.org (Postfix) with ESMTP id BE2341BF3EB for ; Sat, 3 Nov 2018 18:24:43 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id BB359875A2 for ; Sat, 3 Nov 2018 18:24:43 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from whitealder.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id OSKs6paU8ii3 for ; Sat, 3 Nov 2018 18:24:40 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail.datacom.com.br (mx.datacom.ind.br [177.66.5.10]) by whitealder.osuosl.org (Postfix) with ESMTPS id 049C0876CC for ; Sat, 3 Nov 2018 18:24:39 +0000 (UTC) Received: from mail.datacom.com.br (localhost [127.0.0.1]) by mail.datacom.com.br (Postfix) with ESMTPS id 946471BA11BB; Sat, 3 Nov 2018 15:25:04 -0300 (-03) Received: from localhost (localhost [127.0.0.1]) by mail.datacom.com.br (Postfix) with ESMTP id 36ADB1BA11C1; Sat, 3 Nov 2018 15:25:04 -0300 (-03) Received: from mail.datacom.com.br ([127.0.0.1]) by localhost (mail.datacom.com.br [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id vkKh_BNEb3Hl; Sat, 3 Nov 2018 15:25:04 -0300 (-03) Received: from p7-1130br.casantos.org (unknown [201.86.221.14]) by mail.datacom.com.br (Postfix) with ESMTPSA id 8D4E21BA11BE; Sat, 3 Nov 2018 15:25:03 -0300 (-03) From: Carlos Santos To: buildroot@buildroot.org Date: Sat, 3 Nov 2018 15:24:26 -0300 Message-Id: <20181103182427.11738-4-casantos@datacom.com.br> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181103182427.11738-1-casantos@datacom.com.br> References: <20181103182427.11738-1-casantos@datacom.com.br> Subject: [Buildroot] [PATCH v4 3/4] sysklogd: rewrite init script X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Adam Duskett MIME-Version: 1.0 Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" - Split it into S01syslogd and S02klogd to make every init script be called the same as the executable it starts. - Implement start, stop, restart and reload as functions, like in other init scripts, using start-stop-daemon. - Indent with tabs, not spaces. - Detect and report start/stop errors (previous version ignored them and always reported OK). - Support /etc/default/$DAEMON configuration files. - Do not kill syslogd in "reload". Send a SIGHUP signal, instructing it to perform a re-initialization. - Do not kill klogd in "reload". Send a signal (default 0, which does nothing). Users can configure this signal in /etc/default/klogd to either SIGUSR1 or SIGUSR2. Signed-off-by: Carlos Santos Reviewed-by: Matt Weber --- Changes v1->v2 - Implement suggestions made by Arnout Vandecappelle Changes v2->v3 - Include /etc/default/logging, not /etc/default/$DAEMON. Changes v3-v4 - Follow the decisions taken at the Buildroot meeting. - Leave the daemon args themselves on a separate line, as suggested by Arnout Vandecappelle. - Use a less fancy commit message :-) --- package/sysklogd/S01logging | 25 -------------- package/sysklogd/S01syslogd | 62 ++++++++++++++++++++++++++++++++++ package/sysklogd/S02klogd | 65 ++++++++++++++++++++++++++++++++++++ package/sysklogd/sysklogd.mk | 6 ++-- 4 files changed, 131 insertions(+), 27 deletions(-) delete mode 100644 package/sysklogd/S01logging create mode 100644 package/sysklogd/S01syslogd create mode 100644 package/sysklogd/S02klogd diff --git a/package/sysklogd/S01logging b/package/sysklogd/S01logging deleted file mode 100644 index 1cbfe869fa..0000000000 --- a/package/sysklogd/S01logging +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -case "$1" in - start) - printf "Starting logging: " - /sbin/syslogd -m 0 - /sbin/klogd - echo "OK" - ;; - stop) - printf "Stopping logging: " - [ -f /var/run/klogd.pid ] && kill `cat /var/run/klogd.pid` - [ -f /var/run/syslogd.pid ] && kill `cat /var/run/syslogd.pid` - echo "OK" - ;; - restart|reload) - $0 stop - $0 start - ;; - *) - echo "Usage: $0 {start|stop|restart}" - exit 1 -esac - -exit $? diff --git a/package/sysklogd/S01syslogd b/package/sysklogd/S01syslogd new file mode 100644 index 0000000000..d0951f0235 --- /dev/null +++ b/package/sysklogd/S01syslogd @@ -0,0 +1,62 @@ +#!/bin/sh + +DAEMON="syslogd" +PIDFILE="/var/run/$DAEMON.pid" + +SYSLOGD_ARGS="-m 0" + +# shellcheck source=/dev/null +[ -r "/etc/default/$DAEMON" ] && . "/etc/default/$DAEMON" + +start() { + printf 'Starting %s: ' "$DAEMON" + # shellcheck disable=SC2086 # we need the word splitting + start-stop-daemon -S -q -p "$PIDFILE" -x "/sbin/$DAEMON" \ + -- $SYSLOGD_ARGS + status=$? + if [ "$status" -eq 0 ]; then + echo "OK" + else + echo "FAIL" + fi + return "$status" +} + +stop() { + printf 'Stopping %s: ' "$DAEMON" + start-stop-daemon -K -q -p "$PIDFILE" + status=$? + if [ "$status" -eq 0 ]; then + echo "OK" + else + echo "FAIL" + fi + return "$status" +} + +restart() { + stop + sleep 1 + start +} + +# SIGHUP makes syslogd reload its configuration +reload() { + printf 'Reloading %s: ' "$DAEMON" + start-stop-daemon -K -s HUP -q -p "$PIDFILE" + status=$? + if [ "$status" -eq 0 ]; then + echo "OK" + else + echo "FAIL" + fi + return "$status" +} + +case "$1" in + start|stop|restart|reload) + "$1";; + *) + echo "Usage: $0 {start|stop|restart|reload}" + exit 1 +esac diff --git a/package/sysklogd/S02klogd b/package/sysklogd/S02klogd new file mode 100644 index 0000000000..93f39e1f0e --- /dev/null +++ b/package/sysklogd/S02klogd @@ -0,0 +1,65 @@ +#!/bin/sh + +DAEMON="klogd" +PIDFILE="/var/run/$DAEMON.pid" + +KLOGD_ARGS="" + +KLOGD_RELOAD="0" + +# shellcheck source=/dev/null +[ -r "/etc/default/$DAEMON" ] && . "/etc/default/$DAEMON" + +start() { + printf 'Starting %s: ' "$DAEMON" + # shellcheck disable=SC2086 # we need the word splitting + start-stop-daemon -S -q -p "$PIDFILE" -x "/sbin/$DAEMON" \ + -- $KLOGD_ARGS + status=$? + if [ "$status" -eq 0 ]; then + echo "OK" + else + echo "FAIL" + fi + return "$status" +} + +stop() { + printf 'Stopping %s: ' "$DAEMON" + start-stop-daemon -K -q -p "$PIDFILE" + status=$? + if [ "$status" -eq 0 ]; then + echo "OK" + else + echo "FAIL" + fi + return "$status" +} + +restart() { + stop + sleep 1 + start +} + +# SIGUSR1 makes klogd reload kernel module symbols +# SIGUSR2 makes klogd reload static kernel symbols and kernel module symbols +reload() { + printf 'Reloading %s: ' "$DAEMON" + start-stop-daemon -K -s "$KLOGD_RELOAD" -q -p "$PIDFILE" + status=$? + if [ "$status" -eq 0 ]; then + echo "OK" + else + echo "FAIL" + fi + return "$status" +} + +case "$1" in + start|stop|restart|reload) + "$1";; + *) + echo "Usage: $0 {start|stop|restart|reload}" + exit 1 +esac diff --git a/package/sysklogd/sysklogd.mk b/package/sysklogd/sysklogd.mk index c4f064c10b..976438c110 100644 --- a/package/sysklogd/sysklogd.mk +++ b/package/sysklogd/sysklogd.mk @@ -23,8 +23,10 @@ define SYSKLOGD_INSTALL_TARGET_CMDS endef define SYSKLOGD_INSTALL_INIT_SYSV - $(INSTALL) -m 755 -D package/sysklogd/S01logging \ - $(TARGET_DIR)/etc/init.d/S01logging + $(INSTALL) -m 755 -D package/sysklogd/S01syslogd \ + $(TARGET_DIR)/etc/init.d/S01syslogd + $(INSTALL) -m 755 -D package/sysklogd/S02klogd \ + $(TARGET_DIR)/etc/init.d/S02klogd endef define SYSKLOGD_INSTALL_INIT_SYSTEMD