Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Are you perhaps confusing something?

> A "bad" daemon might not print anything to stdout when invoked (which goes to dmesg) but regardless, this whole comment just reeks of someone who hasn't actually dealt with systems before 2014.

The daemons never print to dmesg -- they may print to syslog, but not all do. The only daemon that I know of that prints to dmesg is systemd :)

To be specific, let's do a simple example. Here is an actual sysvinit file, /etc/init.d/hwclock.sh . It contains:

                if /sbin/hwclock --rtc=/dev/$HCTOSYS_DEVICE --hctosys $HWCLOCKPARS $BADYEAR; then
                    #   Announce the local time.
                    verbose_log_action_msg "System Clock set to: `date $UTC`"
                else
                    log_warning_msg "Unable to set System Clock to: `date $UTC`"
                fi
This version has been around since at least 1998 [0]. Old school enough for you?

So here is a simple question: let's say my hwclock chip/driver is unreliable and it did not work on startup for some reason, so that "hwclock" call is failing. My kernel timezone is not set right, the clock is off, and the system does log_warning_msg to warn you about it. How do I find out about this warning?

To make your job simpler, here is how the how this function is defined on my system:

    if log_use_fancy_output; then
        YELLOW=`$TPUT setaf 3`
        NORMAL=`$TPUT op`
        echo " $YELLOW*$NORMAL $@" || true
    else
        echo " * $@" || true
    fi

Note no dmesg here, no syslog, no other loggers. You can say "bootlog", but it has been broken every time I tried to use it.

Now, nothing is impossible! I can hack this script so it writes to a temporary file. I can re-execute it again, and hope it fails again. But this gets old, you know? I can spend all day debugging early boot shell, but I did it for a long time already, so now I just want to type "systemctl show --failed", see all the failed services, fix it quickly, and move on to more interesting stuff.

[0] https://www.mail-archive.com/debian-bugs-dist@lists.debian.o...



log_warning_msg is a function which is wrapping 'echo'.

if you 'echo' it will go to the console.

Your distro can/does log everything that goes to the boot console.

The function 'log_warning_msg' is provided by the sourced bash file: /lib/lsb/init-funtions ; you can find a copy here: http://www.linuxfromscratch.org/lfs/view/7.0/scripts/apds02....

It's just doing echo.

If you add "echo" it will print. I promise.

And anything printed goes to whatever your distro is using to log tty0 console output. (usually /var/log/dmesg or /var/log/messages)


Which distro logs tty0 console output from echo ? Debian does not. Fedora does not. Gentoo used to, but it broke.

Both /var/log/dmesg and /var/log/messages log printk output from inside the kernel. They do not log echo output from userspace.

Are you sure you are an admin?


> Which distro logs tty0 console output from echo ? Debian does not. Fedora does not. Gentoo used to, but it broke.

None, anymore, that's a little bit the point.

Devuan does, so does Debian 7 and RHEL6.

I just tested it on all three in a VM.

yes, I'm sure I'm an admin.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: