From patchwork Wed Nov 7 00:49:08 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Carlos Santos X-Patchwork-Id: 994012 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.133; helo=hemlock.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 hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 42qSVM5WFzz9sDL for ; Wed, 7 Nov 2018 11:49:30 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by hemlock.osuosl.org (Postfix) with ESMTP id 032AA821BA; Wed, 7 Nov 2018 00:49:29 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from hemlock.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id CCHwSqq5VJKR; Wed, 7 Nov 2018 00:49:28 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by hemlock.osuosl.org (Postfix) with ESMTP id 66EFA8220A; Wed, 7 Nov 2018 00:49:28 +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 40EC01BF349 for ; Wed, 7 Nov 2018 00:49:27 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id 3DD4C81423 for ; Wed, 7 Nov 2018 00:49:27 +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 RsauAM31fvKB for ; Wed, 7 Nov 2018 00:49:26 +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 48340813F5 for ; Wed, 7 Nov 2018 00:49:26 +0000 (UTC) Received: from mail.datacom.com.br (localhost [127.0.0.1]) by mail.datacom.com.br (Postfix) with ESMTPS id 886F91BA3617 for ; Tue, 6 Nov 2018 22:49:53 -0200 (-02) Received: from localhost (localhost [127.0.0.1]) by mail.datacom.com.br (Postfix) with ESMTP id 6BA421BA363A for ; Tue, 6 Nov 2018 22:49:53 -0200 (-02) 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 H1y7F5ZhGyys for ; Tue, 6 Nov 2018 22:49:53 -0200 (-02) Received: from p7-1130br.casantos.org (189.27.237.170.dynamic.adsl.gvt.net.br [189.27.237.170]) by mail.datacom.com.br (Postfix) with ESMTPSA id 1CE171BA3617 for ; Tue, 6 Nov 2018 22:49:53 -0200 (-02) From: Carlos Santos To: buildroot@buildroot.org Date: Tue, 6 Nov 2018 22:49:08 -0200 Message-Id: <20181107004912.13349-1-casantos@datacom.com.br> X-Mailer: git-send-email 2.17.1 Subject: [Buildroot] [PATCH v5 0/4] init scripts: rewrite S01logging 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: , MIME-Version: 1.0 Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" Continuing our effort to improve daemon startup scripts, this series focuses on S01logging, which starts the logging daemon. Common features are: - Indent with tabs, not spaces. - Implement start, stop, restart and reload as functions. - Use start-stop-daemon. - Correctly detect and report start/stop/restart/reload errors. - Support a configuration file at /etc/default. - Use one init script per daemom. Name the script accordding to the daemon it starts (e.g. S01syslogd, S02klogd). All files implement the following FSM: +---------+ +-------stop--------+ +----(1s)----| stopped | | | | | | | | | +---------+ v | v ^ +---------+ +---------+ | | | | |----restart---+ | STOPPED |----start--->| STARTED | | | | |----reload----+ +---------+ +---------+ | ^ | | | +-----------------+ * "stopped" is an intermediary state that transitions to STARTED after one second. Attempts to do invalid transitions (e.g. start from STARTED state) will fail. That's why we don't pass -o (--oknodo) to start-stop-daemon. This changes the script behavior, in some cases, while in other cases just reports errors that were ignored previously. The "restart" transition is implemented as "stop, sleep 1, start", so restarting from STOPPED state is possible, although an error message is shown because "stop" fails. The "reload" transition semantics is "reload the configuration and keep running", when possible, otherwise it is the same as "restart" (in this series, sysklogd and syslog-ng support true "reload" operations). The scripts were checked with shellcheck v0.5.0: $ shellcheck package/*/S0*log* Carlos Santos (4): busybox: rewrite logging init script rsyslog: rewrite init script sysklogd: rewrite init script syslog-ng: rewrite init script package/busybox/S01logging | 40 --------------------- package/busybox/S01syslogd | 55 ++++++++++++++++++++++++++++ package/busybox/S02klogd | 55 ++++++++++++++++++++++++++++ package/busybox/busybox.mk | 19 +++++----- package/rsyslog/S01logging | 36 ------------------- package/rsyslog/S01rsyslogd | 53 +++++++++++++++++++++++++++ package/rsyslog/rsyslog.mk | 4 +-- package/sysklogd/S01logging | 25 ------------- package/sysklogd/S01syslogd | 62 ++++++++++++++++++++++++++++++++ package/sysklogd/S02klogd | 65 ++++++++++++++++++++++++++++++++++ package/sysklogd/sysklogd.mk | 6 ++-- package/syslog-ng/S01logging | 38 -------------------- package/syslog-ng/S01syslog-ng | 62 ++++++++++++++++++++++++++++++++ package/syslog-ng/syslog-ng.mk | 4 +-- 14 files changed, 371 insertions(+), 153 deletions(-) delete mode 100644 package/busybox/S01logging create mode 100644 package/busybox/S01syslogd create mode 100644 package/busybox/S02klogd delete mode 100644 package/rsyslog/S01logging create mode 100644 package/rsyslog/S01rsyslogd delete mode 100644 package/sysklogd/S01logging create mode 100644 package/sysklogd/S01syslogd create mode 100644 package/sysklogd/S02klogd delete mode 100644 package/syslog-ng/S01logging create mode 100644 package/syslog-ng/S01syslog-ng