SYSLOGD="-r"

Le
Phil68
Bonjour,

Sur Ubuntu 7.04 l'argument SYSLOGD="-r" dans le fichier
/etc/init.d/sysklogd ne fonctionne pas. Je n'arrive pas à avoir les logs
de mon routeur, alors que sous Ubuntu 6.06 ça fonctionne sans problème.

Si j'arrête le service syslog (sudo /etc/init.d/sysklogd stop) et que je
le redémarre avec sudo syslogd -r cela fonctionne correctement.

Une solution?

a+
Phil


> $ cat /etc/init.d/sysklogd
> #! /bin/sh
> # /etc/init.d/sysklogd: start the system log daemon.
>
> PATH=/bin:/usr/bin:/sbin:/usr/sbin
>
> pidfile=/var/run/syslogd.pid
> binpath=/sbin/syslogd
>
> test -x $binpath || exit 0
> . /lib/lsb/init-functions
>
> # Options for start/restart the daemons
> # For remote UDP logging use SYSLOGD="-r"
> #
> #SYSLOGD="-u syslog"
> SYSLOGD="-r"
>
> create_xconsole()
> {
> if [ ! -e /dev/xconsole ]; then
> mknod -m 640 /dev/xconsole p
> else
> chmod 0640 /dev/xconsole
> fi
> chown root:adm /dev/xconsole
> }
>
> running()
> {
> # No pidfile, probably no daemon present
> #
> if [ ! -f $pidfile ]
> then
> return 1
> fi
>
> pid=`cat $pidfile`
>
> # No pid, probably no daemon present
> #
> if [ -z "$pid" ]
> then
> return 1
> fi
>
> if [ ! -d /proc/$pid ]
> then
> return 1
> fi
>
> cmd=`cat /proc/$pid/cmdline | tr "00" ""|head -n 1`
>
> # No syslogd?
> #
> if [ "$cmd" != "$binpath" ]
> then
> return 1
> fi
>
> return 0
> }
>
> case "$1" in
> start)
> log_begin_msg "Starting system log daemon"
> create_xconsole
> start-stop-daemon --start --quiet --exec $binpath -- $SYSLOGD
> log_end_msg $?
> ;;
> stop)
> log_begin_msg "Stopping system log daemon"
> start-stop-daemon --stop --quiet --oknodo --exec $binpath --pidfile $pidfile log_end_msg $?
> ;;
> restart|force-reload|reload-or-restart|reload)
> log_begin_msg "Restarting system log daemon"
> start-stop-daemon --stop --quiet --exec $binpath --pidfile $pidfile
> sleep 1
> start-stop-daemon --start --quiet --exec $binpath -- $SYSLOGD
> log_end_msg $?
> ;;
> *)
> log_success_msg "Usage: /etc/init.d/sysklogd {start|stop|reload|restart|force-reload|reload-or-restart}"
> exit 1
> esac
>
> exit 0
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Phil68
Le #1889309
Une petite erreur, le fichier /etc/init.d/sysklogd que j'ai donné n'est
pas le bon, c'est celui de Ubuntu 6.06. Voici celui de Ubuntu 7.04:

$ cat /etc/init.d/sysklogd #! /bin/sh
# /etc/init.d/sysklogd: start the system log daemon.

### BEGIN INIT INFO
# Provides: syslog
# Required-Start: $local_fs $network $time
# Required-Stop: $local_fs $network $time
# Default-Start: 2 3 4 5
# Default-Stop: S 0 1 6
# Short-Description: System logger
### END INIT INFO

PATH=/bin:/usr/bin:/sbin:/usr/sbin

pidfile=/var/run/syslogd.pid
binpath=/sbin/syslogd

test -x $binpath || exit 0
. /lib/lsb/init-functions

# Options for start/restart the daemons
# For remote UDP logging use SYSLOGD="-r"
#
#SYSLOGD="-u syslog"
SYSLOGD="-r"

test ! -r /etc/default/syslogd || . /etc/default/syslogd

# allow ltsp to override
test ! -r /etc/ltsp/syslogd || . /etc/ltsp/syslogd

. /lib/lsb/init-functions

create_xconsole()
{
# Only proceed if not using devfsd
if [ -e /dev/.devfsd ]
|| ! grep -q '^[^#].*/dev/xconsole' /etc/syslog.conf
then
return
fi

if [ ! -e /dev/xconsole ]; then
mknod -m 640 /dev/xconsole p
else
chmod 0640 /dev/xconsole
fi
chown root:adm /dev/xconsole
}

running()
{
# No pidfile, probably no daemon present
#
if [ ! -f $pidfile ]
then
return 1
fi

pid=`cat $pidfile`

# No pid, probably no daemon present
#
if [ -z "$pid" ]
then
return 1
fi

if [ ! -d /proc/$pid ]
then
return 1
fi

cmd=`cat /proc/$pid/cmdline | tr "00" "n"|head -n 1`

# No syslogd?
#
if [ "$cmd" != "$binpath" ]
then
return 1
fi

return 0
}

case "$1" in
start)
log_begin_msg "Starting system log daemon..."
create_xconsole
start-stop-daemon --start --quiet --pidfile $pidfile --name syslogd --startas $binpath -- $SYSLOGD
log_end_msg $?
;;
stop)
log_begin_msg "Stopping system log daemon..."
start-stop-daemon --stop --quiet --pidfile $pidfile --name syslogd
log_end_msg $?
;;
reload|force-reload)
log_begin_msg "Reloading system log daemon..."
start-stop-daemon --stop --quiet --signal 1 --pidfile $pidfile --name syslogd
log_end_msg $?
;;
restart)
log_begin_msg "Restarting system log daemon..."
start-stop-daemon --stop --retry 5 --quiet --pidfile $pidfile --name syslogd
start-stop-daemon --start --quiet --pidfile $pidfile --name syslogd --startas $binpath -- $SYSLOGD
log_end_msg $?
;;
reload-or-restart)
if running
then
$0 reload
else
$0 start
fi
;;
*)
log_success_msg "Usage: /etc/init.d/sysklogd {start|stop|reload|restart|force-reload|reload-or-restart}"
exit 1
esac

exit 0


Matthieu Clavier
Le #1889306
On 2007-06-02, Phil68
Une petite erreur, le fichier /etc/init.d/sysklogd que j'ai donné n'est
pas le bon, c'est celui de Ubuntu 6.06. Voici celui de Ubuntu 7.04:



[ ... ]

# Options for start/restart the daemons
# For remote UDP logging use SYSLOGD="-r"
#
#SYSLOGD="-u syslog"
SYSLOGD="-r"

test ! -r /etc/default/syslogd || . /etc/default/syslogd



C'est dans ce fichier qu'il vous faut modifier la variable SYSLOGD.

D'une manière générale, c'est une mauvaise idée de modifier les fichiers
dans le répertoire /etc/init.d.

--
Matthieu Clavier


Phil68
Le #1889298
Merci, ça fonctionne maintenant.

Dans Ubuntu 6.06, il n'y avait pas de fichier /etc/default/syslogd.

a+
Phil
Publicité
Poster une réponse
Anonyme