Re: [PATCH] Add Upstart job configuration file

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Fabio,

I know that Upstart has been replaced by systemd, but I don't use
systemd because I'm using RHEL 6.
And nobody detects abnormal end of corosync-notifyd process started
by /etc/init.d/corosync-notifyd.

So the main purpose that I use Upstart for is to respawn it when
corosync-notifyd process terminated abnormally.  Therefore I
specified "respawn" in job of notifyd.

I made job "corosync" incidentally because I made job of notifyd :)

Best regards,
Kazunori INOUE

(13.03.15 17:01), Fabio M. Di Nitto wrote:
Hi Kazunori,

it´s fine to support upstart as a concept, but can we please use the
same integration as for sysvinit and systemd by making it optional?

Otherwise i don´t see any problem to merge it.

Fabio

On 3/15/2013 8:55 AM, Kazunori INOUE wrote:
Hi,

I wrote Upstart job (configuration file) of corosync service and
corosync-notifyd service.

I'm using Corosync in combination with Pacemaker in RHEL6, and am
going to manage Pacemaker by Upstart.
(ML of related Pacemaker:
  http://www.gossamer-threads.com/lists/linuxha/pacemaker/84141#84141)
Therefore I intend to use it in job of pacemaker ("pacemaker-corosync")
if there are job "corosync" and "corosync-notifyd".  I think that
"respawn" stanza specified in "corosync-notifyd" is especially useful.

----
  corosync.spec.in              |    2 +
  init/Makefile.am              |    9 ++++--
  init/corosync-notifyd.conf.in |   38 ++++++++++++++++++++++++++++++
  init/corosync.conf.in         |   52 +++++++++++++++++++++++++++++++++++++++++
  4 files changed, 98 insertions(+), 3 deletions(-)

diff --git a/corosync.spec.in b/corosync.spec.in
index b262f2c..0a1b3df 100644
--- a/corosync.spec.in
+++ b/corosync.spec.in
@@ -197,6 +197,8 @@ fi
  %{_initrddir}/corosync
  %{_initrddir}/corosync-notifyd
  %endif
+%{_sysconfdir}/init/corosync.conf
+%{_sysconfdir}/init/corosync-notifyd.conf
  %dir %{_localstatedir}/lib/corosync
  %dir %{_localstatedir}/log/cluster
  %{_mandir}/man8/corosync_overview.8*
diff --git a/init/Makefile.am b/init/Makefile.am
index 804ad7c..e64d1ff 100644
--- a/init/Makefile.am
+++ b/init/Makefile.am
@@ -34,7 +34,7 @@

  MAINTAINERCLEANFILES	= Makefile.in

-EXTRA_DIST		= corosync.in corosync-notifyd.in corosync.service.in corosync-notifyd.service.in
+EXTRA_DIST		= corosync.in corosync-notifyd.in corosync.service.in corosync-notifyd.service.in corosync.conf.in corosync-notifyd.conf.in

  if INSTALL_SYSTEMD
  systemdconfdir	   = $(SYSTEMDDIR)
@@ -45,6 +45,9 @@ initscriptdir	   = $(INITDDIR)
  endif
  initscript_SCRIPTS  = corosync corosync-notifyd

+upstartconfdir     = $(sysconfdir)/init
+upstartconf_DATA   = corosync.conf corosync-notifyd.conf
+
  %: %.in Makefile
  	rm -f $@-t $@
  	cat $< | sed \
@@ -57,7 +60,7 @@ initscript_SCRIPTS  = corosync corosync-notifyd
  	    > $@-t
  	mv $@-t $@

-all-local: $(initscript_SCRIPTS) $(systemdconf_DATA)
+all-local: $(initscript_SCRIPTS) $(systemdconf_DATA) $(upstartconf_DATA)

  clean-local:
-	rm -rf $(initscript_SCRIPTS) $(systemdconf_DATA)
+	rm -rf $(initscript_SCRIPTS) $(systemdconf_DATA) $(upstartconf_DATA)
diff --git a/init/corosync-notifyd.conf.in b/init/corosync-notifyd.conf.in
new file mode 100644
index 0000000..b1ac70c
--- /dev/null
+++ b/init/corosync-notifyd.conf.in
@@ -0,0 +1,38 @@
+# corosync-notifyd - Corosync Dbus and snmp notifier
+#
+# Starts corosync-notifyd
+
+expect fork
+respawn
+
+env prog=corosync-notifyd
+env rpm_sysconf=@SYSCONFDIR@/sysconfig/corosync-notifyd
+env rpm_lockfile=@LOCALSTATEDIR@/lock/subsys/corosync-notifyd
+env deb_sysconf=@SYSCONFDIR@/default/corosync-notifyd
+env deb_lockfile=@LOCALSTATEDIR@/lock/corosync-notifyd
+
+script
+    [ -f "$rpm_sysconf" ] && . $rpm_sysconf
+    [ -f "$deb_sysconf" ] && . $deb_sysconf
+    exec $prog $OPTIONS
+end script
+
+pre-start script
+    mkdir -p @LOCALSTATEDIR@/run
+end script
+
+post-start script
+    [ -f "$rpm_sysconf" ] && . $rpm_sysconf
+    [ -f "$deb_sysconf" ] && . $deb_sysconf
+    [ -z "$LOCK_FILE" -a -d @SYSCONFDIR@/sysconfig ] && LOCK_FILE="$rpm_lockfile"
+    [ -z "$LOCK_FILE" -a -d @SYSCONFDIR@/default ] && LOCK_FILE="$deb_lockfile"
+    touch $LOCK_FILE
+end script
+
+post-stop script
+    [ -f "$rpm_sysconf" ] && . $rpm_sysconf
+    [ -f "$deb_sysconf" ] && . $deb_sysconf
+    [ -z "$LOCK_FILE" -a -d @SYSCONFDIR@/sysconfig ] && LOCK_FILE="$rpm_lockfile"
+    [ -z "$LOCK_FILE" -a -d @SYSCONFDIR@/default ] && LOCK_FILE="$deb_lockfile"
+    rm -f $LOCK_FILE
+end script
diff --git a/init/corosync.conf.in b/init/corosync.conf.in
new file mode 100644
index 0000000..a0243f9
--- /dev/null
+++ b/init/corosync.conf.in
@@ -0,0 +1,52 @@
+# corosync - Corosync Cluster Engine
+#
+# Starts corosync
+
+expect fork
+
+env prog=corosync
+env rpm_sysconf=@SYSCONFDIR@/sysconfig/corosync
+env rpm_lockfile=@LOCALSTATEDIR@/lock/subsys/corosync
+env deb_sysconf=@SYSCONFDIR@/default/corosync
+env deb_lockfile=@LOCALSTATEDIR@/lock/corosync
+
+script
+    [ -f "$rpm_sysconf" ] && . $rpm_sysconf
+    [ -f "$deb_sysconf" ] && . $deb_sysconf
+    exec $prog
+end script
+
+pre-start script
+    mkdir -p @LOCALSTATEDIR@/run
+end script
+
+post-start script
+wait_for_ipc()
+{
+    try=0
+    while [ "$try" -le "20" ]; do
+        if corosync-cfgtool -s > /dev/null 2>&1; then
+            return 0
+        fi
+        sleep 0.5
+        try=$((try + 1))
+    done
+    logger -i -t "$UPSTART_JOB" "ERROR: Any interfaces are faulty!"
+    return 1
+}
+    wait_for_ipc || { stop; exit 1; }
+
+    [ -f "$rpm_sysconf" ] && . $rpm_sysconf
+    [ -f "$deb_sysconf" ] && . $deb_sysconf
+    [ -z "$LOCK_FILE" -a -d @SYSCONFDIR@/sysconfig ] && LOCK_FILE="$rpm_lockfile"
+    [ -z "$LOCK_FILE" -a -d @SYSCONFDIR@/default ] && LOCK_FILE="$deb_lockfile"
+    touch $LOCK_FILE
+end script
+
+post-stop script
+    [ -f "$rpm_sysconf" ] && . $rpm_sysconf
+    [ -f "$deb_sysconf" ] && . $deb_sysconf
+    [ -z "$LOCK_FILE" -a -d @SYSCONFDIR@/sysconfig ] && LOCK_FILE="$rpm_lockfile"
+    [ -z "$LOCK_FILE" -a -d @SYSCONFDIR@/default ] && LOCK_FILE="$deb_lockfile"
+    rm -f $LOCK_FILE
+end script
----
Best regards,
Kazunori INOUE
_______________________________________________
discuss mailing list
discuss@xxxxxxxxxxxx
http://lists.corosync.org/mailman/listinfo/discuss


_______________________________________________
discuss mailing list
discuss@xxxxxxxxxxxx
http://lists.corosync.org/mailman/listinfo/discuss
_______________________________________________
discuss mailing list
discuss@xxxxxxxxxxxx
http://lists.corosync.org/mailman/listinfo/discuss



[Index of Archives]     [Linux Clusters]     [Corosync Project]     [Linux USB Devel]     [Linux Audio Users]     [Photo]     [Yosemite News]    [Yosemite Photos]    [Linux Kernel]     [Linux SCSI]     [X.Org]

  Powered by Linux