Score:0

xconsole causing rsyslog to fail startup

vn flag

I am trying to verify that a cronjob ran on WSL2. Sources have told me to check /var/log/syslog. When I navigated there, syslog did not exist. Sources then told me to run service rsyslog start to start the service. When I do so, I get this error message:

deverteuils@:~$ service rsyslog start
 * Starting enhanced syslogd rsyslogd                                                                                mknod: /dev/xconsole: Permission denied
chown: cannot access '/dev/xconsole': No such file or directory
rsyslogd: error writing pid file (creation stage)
: Permission denied
rsyslogd: run failed with error -3000 (see rsyslog.h or try https://www.rsyslog.com/e/3000 to learn what that number means)
rsyslog startup failure: error reading "fork pipe": No such file or directory
                                                                                                              [ OK ]

I then made the change mentioned here to my etc/init.d/rsyslog file. However it did not do the trick:

deverteuils@:/etc/init.d$ service rsyslog start
 * Starting enhanced syslogd rsyslogd                                                                                rsyslogd: error writing pid file (creation stage)
: Permission denied
rsyslogd: run failed with error -3000 (see rsyslog.h or try https://www.rsyslog.com/e/3000 to learn what that number means)
rsyslog startup failure: error reading "fork pipe": No such file or directory
                                                                                                              [ OK ]

I also tried making the change mentioned here to no avail.

My next thought is to just install xconsole, but I'm not having luck with that either and at this point I've spent a lot of time on the issue.

My question is: how can I start up rsyslog without using xconsole and/or download xconsole to my machine?

For reference

deverteuils@:~$ lsb_release -d
Description:    Ubuntu 20.04.5 LTS
deverteuils@:/etc/init.d$ cat rsyslog
#! /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 <biebl@debian.org>
#

# 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
DAEMON=/usr/sbin/rsyslogd
PIDFILE=/run/rsyslogd.pid

SCRIPTNAME=/etc/init.d/$NAME

# Exit if the package is not installed
[ -x "$DAEMON" ] || 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()
{
        # 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 -- $RSYSLOGD_OPTIONS
}

do_stop()
{
        # 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 --exec $DAEMON
}

#
# Tell rsyslogd to close all open files
#
do_rotate() {
        start-stop-daemon --stop --signal HUP --quiet --pidfile $PIDFILE --exec $DAEMON
}

create_xconsole() {
        XCONSOLE=/dev/xconsole
        if [ "$(uname -s)" != "Linux" ]; then
                XCONSOLE=/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 $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
        ;;
  try-restart)
        $0 status >/dev/null 2>&1 && $0 restart
        ;;
  status)
        status_of_proc -p $PIDFILE $DAEMON $RSYSLOGD && exit 0 || exit $?
        ;;
  *)
        echo "Usage: $SCRIPTNAME {start|stop|rotate|restart|force-reload|try-restart|status}" >&2
        exit 3
        ;;
esac

:
hr flag
starting and stopping of system services requires root privileges
Steven DeVerteuil avatar
vn flag
@steeldriver that didn't work either: sudo service rsyslog start [sudo] password for deverteuils: * Starting enhanced syslogd rsyslogd rsyslogd: set SO_TIMESTAMP failed on '/dev/log': Invalid argument [v8.2001.0] rsyslogd: imklog: cannot open kernel log (/proc/kmsg): No such file or directory. rsyslogd: activation of module imklog failed [v8.2001.0 try https://www.rsyslog.com/e/2145 ] [ OK ]
hr flag
Did you actually check (`service rsyslog status`)? Did you try writing something to the log (`logger 'test syslg'`) and looking in the log file?
Steven DeVerteuil avatar
vn flag
@steeldriver I ran that command before hand and it said the service was not running. However, after running it again, it says that the service is running. Not sure which one of my commands did it. Thank you!
I sit in a Tesla and translated this thread with Ai:

mangohost

Post an answer

Most people don’t grasp that asking a lot of questions unlocks learning and improves interpersonal bonding. In Alison’s studies, for example, though people could accurately recall how many questions had been asked in their conversations, they didn’t intuit the link between questions and liking. Across four studies, in which participants were engaged in conversations themselves or read transcripts of others’ conversations, people tended not to realize that question asking would influence—or had influenced—the level of amity between the conversationalists.