On 27.01.2012 10:18, Guillem Jover wrote:

> 
>>  * rsyslog should probably switch to use s-s-d --exec instead (why is
>>    it using --name anyway? that option has always been more unreliable).
> 
> Still pending.

So, I had another look at it. This seems to be a typical case of
copy&paste. The rsyslog init script is based on the skeleton file from
/etc/init.d/ which uses --name in stop.

Guillem, if --name is unreliable as you suggest, it might make sense to
update the skeleton file accordingly?

I guess I just use --exec everywhere, as I don't want to add further
arch specific checks.


>>> Also the creation of xconsole is disabled, since it does not work yet.
>>
>> Why does it not work?
> 
> If it does not work then there might be a problem with named pipes?
> 

I changed the logic a bit in create_xconsole()

Could you please check the attached rsyslog init script, if it works
properly on hurd?


Thanks,
Michael

-- 
Why is it that all of the instruments seeking intelligent life in the
universe are pointed away from Earth?
#! /bin/sh
### BEGIN INIT INFO
# Provides:          rsyslog
# Required-Start:    $remote_fs $time
# Required-Stop:     umountnfs $time
# X-Stop-After:      sendsigs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: enhanced syslogd
# Description:       Rsyslog is an enhanced multi-threaded syslogd.
#                    It is quite compatible to stock sysklogd and can be 
#                    used as a drop-in replacement.
### END INIT INFO

#
# Author: Michael Biebl <[email protected]>
#

# PATH should only include /usr/* if it runs after the mountnfs.sh script
PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="enhanced syslogd"
NAME=rsyslog

RSYSLOGD=rsyslogd
RSYSLOGD_BIN=/usr/sbin/rsyslogd
RSYSLOGD_OPTIONS="-c5"
RSYSLOGD_PIDFILE=/var/run/rsyslogd.pid

SCRIPTNAME=/etc/init.d/$NAME

# Exit if the package is not installed
[ -x "$RSYSLOGD_BIN" ] || exit 0

# Read configuration variable file if it is present
[ -r /etc/default/$NAME ] && . /etc/default/$NAME

# Define LSB log_* functions.
. /lib/lsb/init-functions

do_start()
{
        DAEMON="$RSYSLOGD_BIN"
        DAEMON_ARGS="$RSYSLOGD_OPTIONS"
        PIDFILE="$RSYSLOGD_PIDFILE"

        # Return
        #   0 if daemon has been started
        #   1 if daemon was already running
        #   other if daemon could not be started or a failure occured
        start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- 
$DAEMON_ARGS
}

do_stop()
{
        NAME="$RSYSLOGD"
        PIDFILE="$RSYSLOGD_PIDFILE"

        # Return
        #   0 if daemon has been stopped
        #   1 if daemon was already stopped
        #   other if daemon could not be stopped or a failure occurred
        start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile 
$PIDFILE --name $NAME
}

#
# Tell rsyslogd to close all open files
#
do_rotate() {
        NAME="$RSYSLOGD"
        PIDFILE="$RSYSLOGD_PIDFILE"

        start-stop-daemon --stop --signal HUP --quiet --pidfile $PIDFILE --name 
$NAME
}

create_xconsole() {
        XCONSOLE=/dev/xconsole
        if [ "$(uname -s)" = "GNU/kFreeBSD" ]; then
                XCONSOLE=/var/run/xconsole
                ln -sf $XCONSOLE /dev/xconsole
        fi
        if [ ! -e $XCONSOLE ]; then
                mknod -m 640 $XCONSOLE p
                chown root:adm $XCONSOLE
                [ -x /sbin/restorecon ] && /sbin/restorecon $XCONSOLE
        fi
}

sendsigs_omit() {
        OMITDIR=/run/sendsigs.omit.d
        mkdir -p $OMITDIR
        ln -sf $RSYSLOGD_PIDFILE $OMITDIR/rsyslog
}

case "$1" in
  start)
        log_daemon_msg "Starting $DESC" "$RSYSLOGD"
        create_xconsole
        do_start
        case "$?" in
                0) sendsigs_omit
                   log_end_msg 0 ;;
                1) log_progress_msg "already started"
                   log_end_msg 0 ;;
                *) log_end_msg 1 ;;
        esac

        ;;
  stop)
        log_daemon_msg "Stopping $DESC" "$RSYSLOGD"
        do_stop
        case "$?" in
                0) log_end_msg 0 ;;
                1) log_progress_msg "already stopped"
                   log_end_msg 0 ;;
                *) log_end_msg 1 ;;
        esac

        ;;
  rotate)
        log_daemon_msg "Closing open files" "$RSYSLOGD"
        do_rotate
        log_end_msg $?
        ;;
  restart|force-reload)
        $0 stop
        $0 start
        ;;
  status)
        status_of_proc -p $RSYSLOGD_PIDFILE $RSYSLOGD_BIN $RSYSLOGD && exit 0 
|| exit $?
        ;;
  *)
        echo "Usage: $SCRIPTNAME 
{start|stop|rotate|restart|force-reload|status}" >&2
        exit 3
        ;;
esac

:

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to