xconsole 导致 rsyslog 启动失败

xconsole 导致 rsyslog 启动失败

我正在尝试验证 cronjob 是否在 WSL2 上运行。消息来源告诉我检查/var/log/syslog。当我导航到那里时,syslog它不存在。然后消息来源告诉我运行service rsyslog start以启动该服务。当我这样做时,我收到此错误消息:

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 ]

然后我做了提到的改变这里到我的etc/init.d/rsyslog文件。然而它没有起到作用:

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 ]

我也尝试做出上述改变这里无济于事。

我的下一个想法是安装 xconsole,但我也没有成功,而且目前我已经在这个问题上花费了很多时间。

我的问题是:如何在不使用 xconsole 的情况下启动 rsyslog 和/或将 xconsole 下载到我的机器?

以供参考

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

:

相关内容