unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Danny Milosavljevic <dannym@scratchpost.org>
To: Robert Vollmert <rob@vllmrt.net>
Cc: guix-devel@gnu.org
Subject: Re: where to put helper to send stdout/stderr to syslog?
Date: Mon, 17 Jun 2019 16:45:56 +0200	[thread overview]
Message-ID: <20190617164556.6615d413@scratchpost.org> (raw)
In-Reply-To: <FFEA4268-4438-4AE0-B152-5DD13DA0CC2B@vllmrt.net>

[-- Attachment #1: Type: text/plain, Size: 2715 bytes --]

Hi Robert,

On Mon, 17 Jun 2019 15:12:27 +0200
Robert Vollmert <rob@vllmrt.net> wrote:

> > On 17. Jun 2019, at 14:45, Danny Milosavljevic <dannym@scratchpost.org> wrote:
> > 
> > But doesn't shepherd already log to /dev/kmsg and/or /dev/log (so that ends up
> > in syslog)?  Since exec-command&co keep the standard output and standard error,
> > they (and thus all shepherd services) should also already log to the
> > aforementioned syslog by default.
> > 
> > What is the use case you envision?  
> 
> It sure doesn’t seem like it. For that service, everything lands on
> /dev/console, and I even see some sshd messages there that
> don’t make it to syslog...

Hmm, could you file a bug report to bug-guix@gnu.org about that?

The intent was that shepherd logs its own stdout & stderr to syslog, and by
process attribute inheritance every service does, too--except when a service
doesn't want to, of course.  I was figuring that maybe the process name that
was logged was wrong in your case or something--but not logging at all is AWFUL.

I've read modules/shepherd/comm.scm now and that's definitely a lot more
complicated than I remember.  I think that duping loses the custom guile
ports we had set up (it's obvious in retrospect).

Using "logger" for everything has the additional wrinkle that when the system
shepherd starts up, syslogd is not started up yet.  The "logger" executable
has NO fallback to /dev/kmsg in order to log into the kernel ring buffer in
the mean time.  (shepherd does have it--but that doesn't help us much in this
case)

If we had something like "logger" but with /dev/kmsg fallback, it would always
work whether or not syslogd was already started up (it would buffer the messages
into the kernel ring buffer /dev/kmsg until syslogd started up, at which point
syslogd would read out the kernel ring buffer and log the value, although with
a strange prefix).

Another possibility is to implement socket activation in shepherd, make it claim
/dev/log and start syslogd once /dev/log is first accessed (on demand). 

Shepherd socket activation would still have to take care of (unintended)
service dependency cycles that could arise, though.

In any case, it will end up using something like your procedure, so I'm OK with
adding a variant of it.
(I don't like the name much--maybe rather "with-syslog-console" or something)

>I didn’t figure out how else to refer to it

(string-append #$inetutils "/bin/logger") or something like that.

As an aside, interesting that inetutils' logger doesn't use glibc's openlog.
inetutils wrote their own implementation.

glibc's openlog doesn't fall back to /dev/kmsg either.  Grr.

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

  reply	other threads:[~2019-06-17 14:46 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-06-16 12:22 where to put helper to send stdout/stderr to syslog? Robert Vollmert
2019-06-17 12:45 ` Danny Milosavljevic
2019-06-17 13:12   ` Robert Vollmert
2019-06-17 14:45     ` Danny Milosavljevic [this message]
2019-06-18 13:32   ` Ludovic Courtès
2019-06-18 16:44     ` Robert Vollmert

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190617164556.6615d413@scratchpost.org \
    --to=dannym@scratchpost.org \
    --cc=guix-devel@gnu.org \
    --cc=rob@vllmrt.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).