Re: [PATCH] Add Upstart job configuration file

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

 



Hi Kazunori,

On 3/18/2013 9:48 AM, Kazunori INOUE wrote:
> 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 :)

this is all fine I believe. By optional I meant the integration with the
build system (Makefiles/configure), the same way systemd and sysvinit
are made so that user can enable/disable upstream at ./configure time.

Cheers
Fabio



> 
> 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

_______________________________________________
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