* [ptxdist] [PATCH] monit: add new package
@ 2014-01-27 10:27 Alexander Dahl
2014-01-27 12:55 ` Alexander Dahl
0 siblings, 1 reply; 4+ messages in thread
From: Alexander Dahl @ 2014-01-27 10:27 UTC (permalink / raw)
To: ptxdist
This adds the system monitoring daemon 'monit'. An init script for
busybox init method is included and a generic config file to start with.
Signed-off-by: Alexander Dahl <post@lespocky.de>
---
generic/etc/init.d/monit | 167 ++++++++++++++++++++++++++++++++++++++++++++++
generic/etc/monitrc | 8 +++
rules/monit-bbinit.in | 9 +++
rules/monit.in | 26 ++++++++
rules/monit.make | 74 ++++++++++++++++++++
5 files changed, 284 insertions(+)
create mode 100644 generic/etc/init.d/monit
create mode 100644 generic/etc/monitrc
create mode 100644 rules/monit-bbinit.in
create mode 100644 rules/monit.in
create mode 100644 rules/monit.make
diff --git a/generic/etc/init.d/monit b/generic/etc/init.d/monit
new file mode 100644
index 0000000..96ec86a
--- /dev/null
+++ b/generic/etc/init.d/monit
@@ -0,0 +1,167 @@
+#!/bin/sh
+
+PATH=/sbin:/usr/sbin:/bin:/usr/bin
+DESC="daemon monitor"
+NAME=monit
+DAEMON=/usr/bin/$NAME
+CONFIG="/etc/monitrc"
+PIDFILE=/var/run/$NAME.pid
+SCRIPTNAME=/etc/init.d/$NAME
+MONIT_OPTS=
+
+# exit if binary is missing
+[ -x "$DAEMON" ] || exit 0
+
+monit_check_config() {
+ # Check for existing config file
+ if [ ! -f "$CONFIG" ]
+ then
+ echo " missing config, please edit $CONFIG."
+ exit 1
+ fi
+
+ # Check for emtpy config
+ if [ $(grep -cv '^\s*$\|^\s*#' $CONFIG) -eq 0 ]
+ then
+ echo " empty config, please edit $CONFIG."
+ exit 2
+ fi
+
+ # Let monit check syntax
+ if ! $DAEMON -c $CONFIG -t >/dev/null 2>&1
+ then
+ echo " syntax error in $CONFIG"
+ exit 3
+ fi
+}
+
+is_running() {
+ start-stop-daemon -K --quiet --test --exec $DAEMON \
+ --pidfile $PIDFILE
+}
+
+do_start() {
+ is_running && return 1
+ start-stop-daemon -S --quiet --pidfile $PIDFILE --exec $DAEMON -- \
+ $MONIT_OPTS || return 2
+}
+
+do_stop() {
+ is_running || return 0
+ start-stop-daemon -K --quiet --pidfile $PIDFILE --exec $DAEMON
+ RETVAL="$?"
+
+ # wait up to 30 seconds until daemon stopped
+ for i in $(seq 30)
+ do
+ sleep 1
+ echo -n '.'
+ if ! is_running
+ then
+ break
+ fi
+ done
+
+ # see if it's still running
+ if is_running
+ then
+ start-stop-daemon -K --quiet --signal KILL --pidfile $PIDFILE \
+ --exec $DAEMON
+
+ for i in $(seq 5)
+ do
+ sleep 1
+ echo -n '.'
+ if ! is_running
+ then
+ break
+ fi
+ done
+
+ if is_running
+ then
+ return 2
+ fi
+ fi
+
+ rm -f $PIDFILE
+ return "$RETVAL"
+}
+
+do_reload() {
+ # monit has an own call for this, no need to send SIGHUP
+ $DAEMON reload
+}
+
+monit_check_perms() {
+ # Check the permission on configfile.
+ # The permission must not have more than -rwx------ (0700) permissions.
+
+ # Skip checking, fix perms instead.
+ /bin/chmod go-rwx $CONFIG
+}
+
+monit_checks() {
+ # Check for emtpy configfile
+ monit_check_config
+ # Check permissions of configfile
+ monit_check_perms
+}
+
+case "$1" in
+ start)
+ monit_checks
+ do_start
+ case "$?" in
+ 0) ;;
+ 1) echo "$DESC already running." ;;
+ *) echo "Starting $DESC failed." ;;
+ esac
+ ;;
+ stop)
+ echo -n "Stopping $DESC ."
+ do_stop
+ case "$?" in
+ 0|1) echo " Done." ;;
+ *) echo " Failed." ;;
+ esac
+ ;;
+ reload)
+ do_reload
+ ;;
+ restart|force-reload)
+ echo -n "Restarting $DESC .."
+ do_stop
+ case "$?" in
+ 0|1)
+ echo ""
+ do_start
+ case "$?" in
+ 0) ;;
+ 1) echo " Failed." ;; # Old process still running
+ *) echo " Failed." ;; # Failed to start
+ esac
+ ;;
+ *)
+ echo " Failed." # Failed to stop
+ ;;
+ esac
+ ;;
+ status)
+ if is_running
+ then
+ echo "$NAME is running with PID $(cat $PIDFILE) ..."
+ else
+ echo "$NAME is not running"
+ fi
+ ;;
+ syntax)
+ $DAEMON -c $CONFIG -t
+ ;;
+ *)
+ echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload|status}" >&2
+ exit 3
+ ;;
+esac
+
+:
diff --git a/generic/etc/monitrc b/generic/etc/monitrc
new file mode 100644
index 0000000..810b9b4
--- /dev/null
+++ b/generic/etc/monitrc
@@ -0,0 +1,8 @@
+set daemon 120
+set logfile /var/log/monit.log
+set idfile /var/lib/monit/id
+set pidfile /var/run/monit.pid
+set statefile /var/lib/monit/state
+set eventqueue
+ basedir /var/monit/events
+ slots 100
diff --git a/rules/monit-bbinit.in b/rules/monit-bbinit.in
new file mode 100644
index 0000000..94bf2e9
--- /dev/null
+++ b/rules/monit-bbinit.in
@@ -0,0 +1,9 @@
+## SECTION=initmethod_bbinit
+
+config MONIT_BBINIT_LINK
+ string
+ depends on MONIT_STARTSCRIPT
+ prompt "monit"
+ default "S98monit"
+
+# vim: ft=kconfig noet tw=72
diff --git a/rules/monit.in b/rules/monit.in
new file mode 100644
index 0000000..8d20d22
--- /dev/null
+++ b/rules/monit.in
@@ -0,0 +1,26 @@
+## SECTION=shell_and_console
+
+menuconfig MONIT
+ tristate
+ prompt "monit "
+ select OPENSSL if MONIT_SSL
+ select BUSYBOX_START_STOP_DAEMON if MONIT_STARTSCRIPT
+ select BUSYBOX_FEATURE_START_STOP_DAEMON_LONG_OPTIONS if MONIT_STARTSCRIPT
+ help
+ Utility for managing and monitoring of processes, programs, files,
+ directories, and filesystems.
+
+if MONIT
+
+config MONIT_SSL
+ bool
+ prompt "SSL support"
+
+config MONIT_STARTSCRIPT
+ bool
+ prompt "install /etc/init.d/monit"
+ default y
+
+endif
+
+# vim: ft=kconfig noet tw=72
diff --git a/rules/monit.make b/rules/monit.make
new file mode 100644
index 0000000..7dbe4f0
--- /dev/null
+++ b/rules/monit.make
@@ -0,0 +1,74 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2014 by Alexander Dahl <post@lespocky.de>
+#
+# See CREDITS for details about who has contributed to this project.
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_MONIT) += monit
+
+#
+# Paths and names
+#
+MONIT_VERSION := 5.6
+MONIT_MD5 := 19dfc1ce8512e832134d06eedd96ba50
+MONIT := monit-$(MONIT_VERSION)
+MONIT_SUFFIX := tar.gz
+MONIT_URL := http://mmonit.com/monit/dist/$(MONIT).$(MONIT_SUFFIX)
+MONIT_SOURCE := $(SRCDIR)/$(MONIT).$(MONIT_SUFFIX)
+MONIT_DIR := $(BUILDDIR)/$(MONIT)
+MONIT_LICENSE := AGPLv3
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+MONIT_CONF_ENV := $(CROSS_ENV) \
+ libmonit_cv_setjmp_available=yes \
+ libmonit_cv_vsnprintf_c99_conformant=yes
+
+MONIT_CONF_TOOL := autoconf
+MONIT_CONF_OPT := $(CROSS_AUTOCONF_USR) \
+ --without-pam \
+ --enable-optimized \
+ --enable-largefile \
+ --$(call ptx/wwo, PTXCONF_MONIT_SSL)-ssl \
+ --with-ssl-dir=$(SYSROOT)/usr
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/monit.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, monit)
+ @$(call install_fixup, monit,PRIORITY,optional)
+ @$(call install_fixup, monit,SECTION,base)
+ @$(call install_fixup, monit,AUTHOR,"Alexander Dahl <post@lespocky.de>")
+ @$(call install_fixup, monit,DESCRIPTION,missing)
+
+ @$(call install_copy, monit, 0, 0, 0755, -, /usr/bin/monit)
+ @$(call install_copy, monit, 0, 0, 0755, /var/lib/monit)
+
+ifdef PTXCONF_INITMETHOD_BBINIT
+ifdef PTXCONF_MONIT_STARTSCRIPT
+ @$(call install_alternative, monit, 0, 0, 0755, /etc/init.d/monit)
+ifneq ($(call remove_quotes,$(PTXCONF_MONIT_BBINIT_LINK)),)
+ @$(call install_link, monit, ../init.d/monit, \
+ /etc/rc.d/$(PTXCONF_MONIT_BBINIT_LINK))
+endif
+endif
+endif
+
+ @$(call install_finish, monit)
+
+ @$(call touch)
+
+# vim: ft=make noet
--
1.7.10.4
--
ptxdist mailing list
ptxdist@pengutronix.de
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [ptxdist] [PATCH] monit: add new package
2014-01-27 10:27 [ptxdist] [PATCH] monit: add new package Alexander Dahl
@ 2014-01-27 12:55 ` Alexander Dahl
2014-01-27 13:44 ` [ptxdist] [PATCHv2] " Alexander Dahl
0 siblings, 1 reply; 4+ messages in thread
From: Alexander Dahl @ 2014-01-27 12:55 UTC (permalink / raw)
To: ptxdist
Hei hei,
I forgot to include the target install rule for the config file. I'll
fix this and resubmit the patch.
Greets
Alex
Am 2014-01-27 11:27, schrieb Alexander Dahl:
> +# ----------------------------------------------------------------------------
> +# Target-Install
> +# ----------------------------------------------------------------------------
> +
> +$(STATEDIR)/monit.targetinstall:
> + @$(call targetinfo)
> +
> + @$(call install_init, monit)
> + @$(call install_fixup, monit,PRIORITY,optional)
> + @$(call install_fixup, monit,SECTION,base)
> + @$(call install_fixup, monit,AUTHOR,"Alexander Dahl <post@lespocky.de>")
> + @$(call install_fixup, monit,DESCRIPTION,missing)
> +
> + @$(call install_copy, monit, 0, 0, 0755, -, /usr/bin/monit)
> + @$(call install_copy, monit, 0, 0, 0755, /var/lib/monit)
> +
> +ifdef PTXCONF_INITMETHOD_BBINIT
> +ifdef PTXCONF_MONIT_STARTSCRIPT
> + @$(call install_alternative, monit, 0, 0, 0755, /etc/init.d/monit)
> +ifneq ($(call remove_quotes,$(PTXCONF_MONIT_BBINIT_LINK)),)
> + @$(call install_link, monit, ../init.d/monit, \
> + /etc/rc.d/$(PTXCONF_MONIT_BBINIT_LINK))
> +endif
> +endif
> +endif
> +
> + @$(call install_finish, monit)
> +
> + @$(call touch)
> +
> +# vim: ft=make noet
--
»With the first link, the chain is forged. The first speech censured,
the first thought forbidden, the first freedom denied, chains us all
irrevocably.« (Jean-Luc Picard, quoting Judge Aaron Satie)
*** GnuPG-FP: 02C8 A590 7FE5 CA5F 3601 D1D5 8FBA 7744 CC87 10D0 ***
--
ptxdist mailing list
ptxdist@pengutronix.de
^ permalink raw reply [flat|nested] 4+ messages in thread
* [ptxdist] [PATCHv2] monit: add new package
2014-01-27 12:55 ` Alexander Dahl
@ 2014-01-27 13:44 ` Alexander Dahl
2014-01-30 9:02 ` Michael Olbrich
0 siblings, 1 reply; 4+ messages in thread
From: Alexander Dahl @ 2014-01-27 13:44 UTC (permalink / raw)
To: ptxdist
This adds the system monitoring daemon 'monit'. An init script for
busybox init method is included and a generic config file to start with.
Signed-off-by: Alexander Dahl <post@lespocky.de>
---
generic/etc/init.d/monit | 167 ++++++++++++++++++++++++++++++++++++++++++++++
generic/etc/monitrc | 8 +++
rules/monit-bbinit.in | 9 +++
rules/monit.in | 26 ++++++++
rules/monit.make | 76 +++++++++++++++++++++
5 files changed, 286 insertions(+)
create mode 100644 generic/etc/init.d/monit
create mode 100644 generic/etc/monitrc
create mode 100644 rules/monit-bbinit.in
create mode 100644 rules/monit.in
create mode 100644 rules/monit.make
diff --git a/generic/etc/init.d/monit b/generic/etc/init.d/monit
new file mode 100644
index 0000000..96ec86a
--- /dev/null
+++ b/generic/etc/init.d/monit
@@ -0,0 +1,167 @@
+#!/bin/sh
+
+PATH=/sbin:/usr/sbin:/bin:/usr/bin
+DESC="daemon monitor"
+NAME=monit
+DAEMON=/usr/bin/$NAME
+CONFIG="/etc/monitrc"
+PIDFILE=/var/run/$NAME.pid
+SCRIPTNAME=/etc/init.d/$NAME
+MONIT_OPTS=
+
+# exit if binary is missing
+[ -x "$DAEMON" ] || exit 0
+
+monit_check_config() {
+ # Check for existing config file
+ if [ ! -f "$CONFIG" ]
+ then
+ echo " missing config, please edit $CONFIG."
+ exit 1
+ fi
+
+ # Check for emtpy config
+ if [ $(grep -cv '^\s*$\|^\s*#' $CONFIG) -eq 0 ]
+ then
+ echo " empty config, please edit $CONFIG."
+ exit 2
+ fi
+
+ # Let monit check syntax
+ if ! $DAEMON -c $CONFIG -t >/dev/null 2>&1
+ then
+ echo " syntax error in $CONFIG"
+ exit 3
+ fi
+}
+
+is_running() {
+ start-stop-daemon -K --quiet --test --exec $DAEMON \
+ --pidfile $PIDFILE
+}
+
+do_start() {
+ is_running && return 1
+ start-stop-daemon -S --quiet --pidfile $PIDFILE --exec $DAEMON -- \
+ $MONIT_OPTS || return 2
+}
+
+do_stop() {
+ is_running || return 0
+ start-stop-daemon -K --quiet --pidfile $PIDFILE --exec $DAEMON
+ RETVAL="$?"
+
+ # wait up to 30 seconds until daemon stopped
+ for i in $(seq 30)
+ do
+ sleep 1
+ echo -n '.'
+ if ! is_running
+ then
+ break
+ fi
+ done
+
+ # see if it's still running
+ if is_running
+ then
+ start-stop-daemon -K --quiet --signal KILL --pidfile $PIDFILE \
+ --exec $DAEMON
+
+ for i in $(seq 5)
+ do
+ sleep 1
+ echo -n '.'
+ if ! is_running
+ then
+ break
+ fi
+ done
+
+ if is_running
+ then
+ return 2
+ fi
+ fi
+
+ rm -f $PIDFILE
+ return "$RETVAL"
+}
+
+do_reload() {
+ # monit has an own call for this, no need to send SIGHUP
+ $DAEMON reload
+}
+
+monit_check_perms() {
+ # Check the permission on configfile.
+ # The permission must not have more than -rwx------ (0700) permissions.
+
+ # Skip checking, fix perms instead.
+ /bin/chmod go-rwx $CONFIG
+}
+
+monit_checks() {
+ # Check for emtpy configfile
+ monit_check_config
+ # Check permissions of configfile
+ monit_check_perms
+}
+
+case "$1" in
+ start)
+ monit_checks
+ do_start
+ case "$?" in
+ 0) ;;
+ 1) echo "$DESC already running." ;;
+ *) echo "Starting $DESC failed." ;;
+ esac
+ ;;
+ stop)
+ echo -n "Stopping $DESC ."
+ do_stop
+ case "$?" in
+ 0|1) echo " Done." ;;
+ *) echo " Failed." ;;
+ esac
+ ;;
+ reload)
+ do_reload
+ ;;
+ restart|force-reload)
+ echo -n "Restarting $DESC .."
+ do_stop
+ case "$?" in
+ 0|1)
+ echo ""
+ do_start
+ case "$?" in
+ 0) ;;
+ 1) echo " Failed." ;; # Old process still running
+ *) echo " Failed." ;; # Failed to start
+ esac
+ ;;
+ *)
+ echo " Failed." # Failed to stop
+ ;;
+ esac
+ ;;
+ status)
+ if is_running
+ then
+ echo "$NAME is running with PID $(cat $PIDFILE) ..."
+ else
+ echo "$NAME is not running"
+ fi
+ ;;
+ syntax)
+ $DAEMON -c $CONFIG -t
+ ;;
+ *)
+ echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload|status}" >&2
+ exit 3
+ ;;
+esac
+
+:
diff --git a/generic/etc/monitrc b/generic/etc/monitrc
new file mode 100644
index 0000000..b182058
--- /dev/null
+++ b/generic/etc/monitrc
@@ -0,0 +1,8 @@
+set daemon 120
+set logfile /var/log/monit.log
+set idfile /var/lib/monit/id
+set pidfile /var/run/monit.pid
+set statefile /var/lib/monit/state
+set eventqueue
+ basedir /var/lib/monit/events
+ slots 100
diff --git a/rules/monit-bbinit.in b/rules/monit-bbinit.in
new file mode 100644
index 0000000..94bf2e9
--- /dev/null
+++ b/rules/monit-bbinit.in
@@ -0,0 +1,9 @@
+## SECTION=initmethod_bbinit
+
+config MONIT_BBINIT_LINK
+ string
+ depends on MONIT_STARTSCRIPT
+ prompt "monit"
+ default "S98monit"
+
+# vim: ft=kconfig noet tw=72
diff --git a/rules/monit.in b/rules/monit.in
new file mode 100644
index 0000000..8d20d22
--- /dev/null
+++ b/rules/monit.in
@@ -0,0 +1,26 @@
+## SECTION=shell_and_console
+
+menuconfig MONIT
+ tristate
+ prompt "monit "
+ select OPENSSL if MONIT_SSL
+ select BUSYBOX_START_STOP_DAEMON if MONIT_STARTSCRIPT
+ select BUSYBOX_FEATURE_START_STOP_DAEMON_LONG_OPTIONS if MONIT_STARTSCRIPT
+ help
+ Utility for managing and monitoring of processes, programs, files,
+ directories, and filesystems.
+
+if MONIT
+
+config MONIT_SSL
+ bool
+ prompt "SSL support"
+
+config MONIT_STARTSCRIPT
+ bool
+ prompt "install /etc/init.d/monit"
+ default y
+
+endif
+
+# vim: ft=kconfig noet tw=72
diff --git a/rules/monit.make b/rules/monit.make
new file mode 100644
index 0000000..860d115
--- /dev/null
+++ b/rules/monit.make
@@ -0,0 +1,76 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2014 by Alexander Dahl <post@lespocky.de>
+#
+# See CREDITS for details about who has contributed to this project.
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_MONIT) += monit
+
+#
+# Paths and names
+#
+MONIT_VERSION := 5.6
+MONIT_MD5 := 19dfc1ce8512e832134d06eedd96ba50
+MONIT := monit-$(MONIT_VERSION)
+MONIT_SUFFIX := tar.gz
+MONIT_URL := http://mmonit.com/monit/dist/$(MONIT).$(MONIT_SUFFIX)
+MONIT_SOURCE := $(SRCDIR)/$(MONIT).$(MONIT_SUFFIX)
+MONIT_DIR := $(BUILDDIR)/$(MONIT)
+MONIT_LICENSE := AGPLv3
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+MONIT_CONF_ENV := $(CROSS_ENV) \
+ libmonit_cv_setjmp_available=yes \
+ libmonit_cv_vsnprintf_c99_conformant=yes
+
+MONIT_CONF_TOOL := autoconf
+MONIT_CONF_OPT := $(CROSS_AUTOCONF_USR) \
+ --without-pam \
+ --enable-optimized \
+ --enable-largefile \
+ --$(call ptx/wwo, PTXCONF_MONIT_SSL)-ssl \
+ --with-ssl-dir=$(SYSROOT)/usr
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/monit.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, monit)
+ @$(call install_fixup, monit,PRIORITY,optional)
+ @$(call install_fixup, monit,SECTION,base)
+ @$(call install_fixup, monit,AUTHOR,"Alexander Dahl <post@lespocky.de>")
+ @$(call install_fixup, monit,DESCRIPTION,missing)
+
+ @$(call install_copy, monit, 0, 0, 0755, -, /usr/bin/monit)
+ @$(call install_copy, monit, 0, 0, 0755, /var/lib/monit)
+ @$(call install_copy, monit, 0, 0, 0755, /var/lib/monit/events)
+ @$(call install_alternative, monit, 0, 0, 0600, /etc/monitrc)
+
+ifdef PTXCONF_INITMETHOD_BBINIT
+ifdef PTXCONF_MONIT_STARTSCRIPT
+ @$(call install_alternative, monit, 0, 0, 0755, /etc/init.d/monit)
+ifneq ($(call remove_quotes,$(PTXCONF_MONIT_BBINIT_LINK)),)
+ @$(call install_link, monit, ../init.d/monit, \
+ /etc/rc.d/$(PTXCONF_MONIT_BBINIT_LINK))
+endif
+endif
+endif
+
+ @$(call install_finish, monit)
+
+ @$(call touch)
+
+# vim: ft=make noet
--
1.7.10.4
--
ptxdist mailing list
ptxdist@pengutronix.de
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [ptxdist] [PATCHv2] monit: add new package
2014-01-27 13:44 ` [ptxdist] [PATCHv2] " Alexander Dahl
@ 2014-01-30 9:02 ` Michael Olbrich
0 siblings, 0 replies; 4+ messages in thread
From: Michael Olbrich @ 2014-01-30 9:02 UTC (permalink / raw)
To: ptxdist
On Mon, Jan 27, 2014 at 02:44:05PM +0100, Alexander Dahl wrote:
> This adds the system monitoring daemon 'monit'. An init script for
> busybox init method is included and a generic config file to start with.
>
> Signed-off-by: Alexander Dahl <post@lespocky.de>
Thanks, applied.
Michael
> ---
> generic/etc/init.d/monit | 167 ++++++++++++++++++++++++++++++++++++++++++++++
> generic/etc/monitrc | 8 +++
> rules/monit-bbinit.in | 9 +++
> rules/monit.in | 26 ++++++++
> rules/monit.make | 76 +++++++++++++++++++++
> 5 files changed, 286 insertions(+)
> create mode 100644 generic/etc/init.d/monit
> create mode 100644 generic/etc/monitrc
> create mode 100644 rules/monit-bbinit.in
> create mode 100644 rules/monit.in
> create mode 100644 rules/monit.make
>
> diff --git a/generic/etc/init.d/monit b/generic/etc/init.d/monit
> new file mode 100644
> index 0000000..96ec86a
> --- /dev/null
> +++ b/generic/etc/init.d/monit
> @@ -0,0 +1,167 @@
> +#!/bin/sh
> +
> +PATH=/sbin:/usr/sbin:/bin:/usr/bin
> +DESC="daemon monitor"
> +NAME=monit
> +DAEMON=/usr/bin/$NAME
> +CONFIG="/etc/monitrc"
> +PIDFILE=/var/run/$NAME.pid
> +SCRIPTNAME=/etc/init.d/$NAME
> +MONIT_OPTS=
> +
> +# exit if binary is missing
> +[ -x "$DAEMON" ] || exit 0
> +
> +monit_check_config() {
> + # Check for existing config file
> + if [ ! -f "$CONFIG" ]
> + then
> + echo " missing config, please edit $CONFIG."
> + exit 1
> + fi
> +
> + # Check for emtpy config
> + if [ $(grep -cv '^\s*$\|^\s*#' $CONFIG) -eq 0 ]
> + then
> + echo " empty config, please edit $CONFIG."
> + exit 2
> + fi
> +
> + # Let monit check syntax
> + if ! $DAEMON -c $CONFIG -t >/dev/null 2>&1
> + then
> + echo " syntax error in $CONFIG"
> + exit 3
> + fi
> +}
> +
> +is_running() {
> + start-stop-daemon -K --quiet --test --exec $DAEMON \
> + --pidfile $PIDFILE
> +}
> +
> +do_start() {
> + is_running && return 1
> + start-stop-daemon -S --quiet --pidfile $PIDFILE --exec $DAEMON -- \
> + $MONIT_OPTS || return 2
> +}
> +
> +do_stop() {
> + is_running || return 0
> + start-stop-daemon -K --quiet --pidfile $PIDFILE --exec $DAEMON
> + RETVAL="$?"
> +
> + # wait up to 30 seconds until daemon stopped
> + for i in $(seq 30)
> + do
> + sleep 1
> + echo -n '.'
> + if ! is_running
> + then
> + break
> + fi
> + done
> +
> + # see if it's still running
> + if is_running
> + then
> + start-stop-daemon -K --quiet --signal KILL --pidfile $PIDFILE \
> + --exec $DAEMON
> +
> + for i in $(seq 5)
> + do
> + sleep 1
> + echo -n '.'
> + if ! is_running
> + then
> + break
> + fi
> + done
> +
> + if is_running
> + then
> + return 2
> + fi
> + fi
> +
> + rm -f $PIDFILE
> + return "$RETVAL"
> +}
> +
> +do_reload() {
> + # monit has an own call for this, no need to send SIGHUP
> + $DAEMON reload
> +}
> +
> +monit_check_perms() {
> + # Check the permission on configfile.
> + # The permission must not have more than -rwx------ (0700) permissions.
> +
> + # Skip checking, fix perms instead.
> + /bin/chmod go-rwx $CONFIG
> +}
> +
> +monit_checks() {
> + # Check for emtpy configfile
> + monit_check_config
> + # Check permissions of configfile
> + monit_check_perms
> +}
> +
> +case "$1" in
> + start)
> + monit_checks
> + do_start
> + case "$?" in
> + 0) ;;
> + 1) echo "$DESC already running." ;;
> + *) echo "Starting $DESC failed." ;;
> + esac
> + ;;
> + stop)
> + echo -n "Stopping $DESC ."
> + do_stop
> + case "$?" in
> + 0|1) echo " Done." ;;
> + *) echo " Failed." ;;
> + esac
> + ;;
> + reload)
> + do_reload
> + ;;
> + restart|force-reload)
> + echo -n "Restarting $DESC .."
> + do_stop
> + case "$?" in
> + 0|1)
> + echo ""
> + do_start
> + case "$?" in
> + 0) ;;
> + 1) echo " Failed." ;; # Old process still running
> + *) echo " Failed." ;; # Failed to start
> + esac
> + ;;
> + *)
> + echo " Failed." # Failed to stop
> + ;;
> + esac
> + ;;
> + status)
> + if is_running
> + then
> + echo "$NAME is running with PID $(cat $PIDFILE) ..."
> + else
> + echo "$NAME is not running"
> + fi
> + ;;
> + syntax)
> + $DAEMON -c $CONFIG -t
> + ;;
> + *)
> + echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload|status}" >&2
> + exit 3
> + ;;
> +esac
> +
> +:
> diff --git a/generic/etc/monitrc b/generic/etc/monitrc
> new file mode 100644
> index 0000000..b182058
> --- /dev/null
> +++ b/generic/etc/monitrc
> @@ -0,0 +1,8 @@
> +set daemon 120
> +set logfile /var/log/monit.log
> +set idfile /var/lib/monit/id
> +set pidfile /var/run/monit.pid
> +set statefile /var/lib/monit/state
> +set eventqueue
> + basedir /var/lib/monit/events
> + slots 100
> diff --git a/rules/monit-bbinit.in b/rules/monit-bbinit.in
> new file mode 100644
> index 0000000..94bf2e9
> --- /dev/null
> +++ b/rules/monit-bbinit.in
> @@ -0,0 +1,9 @@
> +## SECTION=initmethod_bbinit
> +
> +config MONIT_BBINIT_LINK
> + string
> + depends on MONIT_STARTSCRIPT
> + prompt "monit"
> + default "S98monit"
> +
> +# vim: ft=kconfig noet tw=72
> diff --git a/rules/monit.in b/rules/monit.in
> new file mode 100644
> index 0000000..8d20d22
> --- /dev/null
> +++ b/rules/monit.in
> @@ -0,0 +1,26 @@
> +## SECTION=shell_and_console
> +
> +menuconfig MONIT
> + tristate
> + prompt "monit "
> + select OPENSSL if MONIT_SSL
> + select BUSYBOX_START_STOP_DAEMON if MONIT_STARTSCRIPT
> + select BUSYBOX_FEATURE_START_STOP_DAEMON_LONG_OPTIONS if MONIT_STARTSCRIPT
> + help
> + Utility for managing and monitoring of processes, programs, files,
> + directories, and filesystems.
> +
> +if MONIT
> +
> +config MONIT_SSL
> + bool
> + prompt "SSL support"
> +
> +config MONIT_STARTSCRIPT
> + bool
> + prompt "install /etc/init.d/monit"
> + default y
> +
> +endif
> +
> +# vim: ft=kconfig noet tw=72
> diff --git a/rules/monit.make b/rules/monit.make
> new file mode 100644
> index 0000000..860d115
> --- /dev/null
> +++ b/rules/monit.make
> @@ -0,0 +1,76 @@
> +# -*-makefile-*-
> +#
> +# Copyright (C) 2014 by Alexander Dahl <post@lespocky.de>
> +#
> +# See CREDITS for details about who has contributed to this project.
> +#
> +# For further information about the PTXdist project and license conditions
> +# see the README file.
> +#
> +
> +#
> +# We provide this package
> +#
> +PACKAGES-$(PTXCONF_MONIT) += monit
> +
> +#
> +# Paths and names
> +#
> +MONIT_VERSION := 5.6
> +MONIT_MD5 := 19dfc1ce8512e832134d06eedd96ba50
> +MONIT := monit-$(MONIT_VERSION)
> +MONIT_SUFFIX := tar.gz
> +MONIT_URL := http://mmonit.com/monit/dist/$(MONIT).$(MONIT_SUFFIX)
> +MONIT_SOURCE := $(SRCDIR)/$(MONIT).$(MONIT_SUFFIX)
> +MONIT_DIR := $(BUILDDIR)/$(MONIT)
> +MONIT_LICENSE := AGPLv3
> +
> +# ----------------------------------------------------------------------------
> +# Prepare
> +# ----------------------------------------------------------------------------
> +
> +MONIT_CONF_ENV := $(CROSS_ENV) \
> + libmonit_cv_setjmp_available=yes \
> + libmonit_cv_vsnprintf_c99_conformant=yes
> +
> +MONIT_CONF_TOOL := autoconf
> +MONIT_CONF_OPT := $(CROSS_AUTOCONF_USR) \
> + --without-pam \
> + --enable-optimized \
> + --enable-largefile \
> + --$(call ptx/wwo, PTXCONF_MONIT_SSL)-ssl \
> + --with-ssl-dir=$(SYSROOT)/usr
> +
> +# ----------------------------------------------------------------------------
> +# Target-Install
> +# ----------------------------------------------------------------------------
> +
> +$(STATEDIR)/monit.targetinstall:
> + @$(call targetinfo)
> +
> + @$(call install_init, monit)
> + @$(call install_fixup, monit,PRIORITY,optional)
> + @$(call install_fixup, monit,SECTION,base)
> + @$(call install_fixup, monit,AUTHOR,"Alexander Dahl <post@lespocky.de>")
> + @$(call install_fixup, monit,DESCRIPTION,missing)
> +
> + @$(call install_copy, monit, 0, 0, 0755, -, /usr/bin/monit)
> + @$(call install_copy, monit, 0, 0, 0755, /var/lib/monit)
> + @$(call install_copy, monit, 0, 0, 0755, /var/lib/monit/events)
> + @$(call install_alternative, monit, 0, 0, 0600, /etc/monitrc)
> +
> +ifdef PTXCONF_INITMETHOD_BBINIT
> +ifdef PTXCONF_MONIT_STARTSCRIPT
> + @$(call install_alternative, monit, 0, 0, 0755, /etc/init.d/monit)
> +ifneq ($(call remove_quotes,$(PTXCONF_MONIT_BBINIT_LINK)),)
> + @$(call install_link, monit, ../init.d/monit, \
> + /etc/rc.d/$(PTXCONF_MONIT_BBINIT_LINK))
> +endif
> +endif
> +endif
> +
> + @$(call install_finish, monit)
> +
> + @$(call touch)
> +
> +# vim: ft=make noet
> --
> 1.7.10.4
>
>
> --
> ptxdist mailing list
> ptxdist@pengutronix.de
>
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
--
ptxdist mailing list
ptxdist@pengutronix.de
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2014-01-30 9:02 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-01-27 10:27 [ptxdist] [PATCH] monit: add new package Alexander Dahl
2014-01-27 12:55 ` Alexander Dahl
2014-01-27 13:44 ` [ptxdist] [PATCHv2] " Alexander Dahl
2014-01-30 9:02 ` Michael Olbrich
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox