[systemd-devel] rsyslog not starting inside a namespace when started using systemd.
Andrei Borzenkov
arvidjaar at gmail.com
Mon Dec 14 08:56:39 PST 2015
14.12.2015 18:42, Navneet Sinha пишет:
> I don't know whether this is the right place to talk about this.
>
> Here is my rsyslog.service file.
>
> [Unit] Description=System Logging Service
>
> [Service]
> EnvironmentFile=-/etc/sysconfig/rsyslog
> ExecStart=/sbin/ip netns exec $NSNAME /sbin/rsyslogd -n
When I try to do it I get
bor at bor-Latitude-E5450:~$ sudo ip netns exec foo /usr/sbin/rsyslogd -n
Pidfile (and pid) already exist.
> Sockets=syslog.socket
> StandardOutput=null
>
> [Install]
> WantedBy=multi-user.target
> Alias=syslog.service
>
> Here is the environment file:
>
> # NOTE NOTE NOTE NOTE NOTE
> #
> # This file is AUTO-GENERATED based on the system's configuration.
> # Any modifications you make to this file will be lost when the
> # system's configuration is changed, e.g. from the CLI.
> #
>
> SYSLOGD_OPTIONS=""
> NSNAME="default"
>
> # End of auto-generated file
>
> When, systemd tries to start this service during boot up of my machine.
> I see following debug logs:
>
> 'About to execute /sbin/ip netns exec $NSNAME /sbin/rsyslogd -n\n'
> 'Forked /sbin/ip as 2794\n'
> 'rsyslog.service changed dead -> running\n'
> 'Job rsyslog.service/start finished, result=done\n'
> 'Got D-Bus request: org.freedesktop.systemd1.Manager.GetUnit() on
> /org/freedesktop/systemd1\n'
> 'Got D-Bus request: org.freedesktop.DBus.Properties.Get() on
> /org/freedesktop/systemd1/unit/rsyslog_2eservice\n'
> 'Got D-Bus request: org.freedesktop.DBus.Local.Disconnected() on
> /org/freedesktop/DBus/Local\n'
> 'Accepted connection on private bus.\n'
> 'Got D-Bus request: org.freedesktop.systemd1.Agent.Released() on
> /org/freedesktop/systemd1/agent\n'
> 'Got D-Bus request: org.freedesktop.DBus.Local.Disconnected() on
> /org/freedesktop/DBus/Local\n'
> 'Accepted connection on private bus.\n'
> 'Received SIGCHLD from PID 2794 (ip).\n'
> 'Got SIGCHLD for process 2794 (ip)\n'
> 'Child 2794 died (code=exited, status=1/FAILURE)\n'
> 'Child 2794 belongs to rsyslog.service\n'
> 'rsyslog.service: main process exited, code=exited, status=1/FAILURE\n'
> 'rsyslog.service changed running -> failed\n'
> 'Unit rsyslog.service entered failed state.\n'
>
>
> ***why it fails to start, why pid 2794 receives the SIGCHLD ?***
> *Any ideas ? I am unable to think on what to check next.*
>
> systemd version : systemd-201-2.fc18.9.i686
>
> rsyslog version : rsyslog-7.2.6
>
> Before changing to systemd, I had rsyslog initscript in /etc/init.d/ to
> start up rsyslog during boot up. Just in case, someone wants to take a look
> at it. Here is the main part of the initscript, which I changed an made a
> systemd service
>
> #!/bin/bash
> #
> # rsyslog Startup script for rsyslog.
> #
> # chkconfig: 2345 12 88
> # description: Syslog is the facility by which many daemons use to log \
> # messages to various system log files. It is a good idea to always \
> # run rsyslog.
> ### BEGIN INIT INFO
> # Provides: $syslog
> # Required-Start: $local_fs
> # Required-Stop: $local_fs
> # Default-Start: 2 3 4 5
> # Default-Stop: 0 1 6
> # Short-Description: Enhanced system logging and kernel message
> trapping daemons
> # Description: Rsyslog is an enhanced multi-threaded syslogd supporting,
> # among others, MySQL, syslog/tcp, RFC 3195, permitted
> # sender lists, filtering on any message part, and fine
> # grain output format control.
> ### END INIT INFO
>
>
> # Source function library.
> . /etc/init.d/functions
>
> RETVAL=0
> PIDFILE=/var/run/syslogd.pid
>
> prog=rsyslog
> exec=/sbin/rsyslogd
> lockfile=/var/lock/subsys/$prog
>
> # Source config
> if [ -f /etc/sysconfig/$prog ] ; then
> . /etc/sysconfig/$prog
> fi
>
> start() {
> [ -x $exec ] || exit 5
>
> umask 077
>
> echo -n $"Starting system logger: "
> sudo $NETNS_EXEC $exec -i "${PIDFILE}" $SYSLOGD_OPTIONS
> RETVAL=$?
> echo
> [ $RETVAL -eq 0 ] && touch $lockfile
> return $RETVAL
> }
> stop() {
> echo -n $"Shutting down system logger: "
> killproc -p "${PIDFILE}" $exec
> RETVAL=$?
> echo
> [ $RETVAL -eq 0 ] && rm -f $lockfile
> return $RETVAL
> }
> rhstatus() {
> status -p "${PIDFILE}" $exec
> }
> restart() {
> stop
> start
> }
>
>
> Any help will be appreciated. Kindly, help.
>
> Thanks
>
>
>
> _______________________________________________
> systemd-devel mailing list
> systemd-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/systemd-devel
>
More information about the systemd-devel
mailing list