mirror of
https://github.com/systemd/systemd.git
synced 2025-03-01 08:58:29 +03:00
log: Prefer logging to CLI unless JOURNAL_STREAM is set
This commit is contained in:
parent
7830b5c103
commit
bc694c06e6
@ -7,6 +7,7 @@
|
|||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#include <sys/signalfd.h>
|
#include <sys/signalfd.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
#include <sys/uio.h>
|
#include <sys/uio.h>
|
||||||
#include <sys/un.h>
|
#include <sys/un.h>
|
||||||
@ -219,6 +220,32 @@ fail:
|
|||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool stderr_is_journal(void) {
|
||||||
|
_cleanup_free_ char *w = NULL;
|
||||||
|
const char *e;
|
||||||
|
uint64_t dev, ino;
|
||||||
|
struct stat st;
|
||||||
|
|
||||||
|
e = getenv("JOURNAL_STREAM");
|
||||||
|
if (!e)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (extract_first_word(&e, &w, ":", EXTRACT_DONT_COALESCE_SEPARATORS) <= 0)
|
||||||
|
return false;
|
||||||
|
if (!e)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (safe_atou64(w, &dev) < 0)
|
||||||
|
return false;
|
||||||
|
if (safe_atou64(e, &ino) < 0)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (fstat(STDERR_FILENO, &st) < 0)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return st.st_dev == dev && st.st_ino == ino;
|
||||||
|
}
|
||||||
|
|
||||||
int log_open(void) {
|
int log_open(void) {
|
||||||
int r;
|
int r;
|
||||||
|
|
||||||
@ -238,9 +265,7 @@ int log_open(void) {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (log_target != LOG_TARGET_AUTO ||
|
if (log_target != LOG_TARGET_AUTO || getpid_cached() == 1 || stderr_is_journal()) {
|
||||||
getpid_cached() == 1 ||
|
|
||||||
isatty(STDERR_FILENO) <= 0) {
|
|
||||||
|
|
||||||
if (!prohibit_ipc &&
|
if (!prohibit_ipc &&
|
||||||
IN_SET(log_target, LOG_TARGET_AUTO,
|
IN_SET(log_target, LOG_TARGET_AUTO,
|
||||||
|
@ -115,9 +115,7 @@ test_run() {
|
|||||||
echo "*** Running test $f"
|
echo "*** Running test $f"
|
||||||
prepare_testdir ${f%.input}
|
prepare_testdir ${f%.input}
|
||||||
cp $f $TESTDIR/usr/lib/sysusers.d/test.conf
|
cp $f $TESTDIR/usr/lib/sysusers.d/test.conf
|
||||||
systemd-sysusers --root=$TESTDIR 2> /dev/null
|
systemd-sysusers --root=$TESTDIR 2>&1 | tail -n1 > $TESTDIR/tmp/err
|
||||||
journalctl --sync
|
|
||||||
journalctl -t systemd-sysusers -o cat | tail -n1 > $TESTDIR/tmp/err
|
|
||||||
if ! diff -u $TESTDIR/tmp/err ${f%.*}.expected-err; then
|
if ! diff -u $TESTDIR/tmp/err ${f%.*}.expected-err; then
|
||||||
echo "**** Unexpected error output for $f"
|
echo "**** Unexpected error output for $f"
|
||||||
cat $TESTDIR/tmp/err
|
cat $TESTDIR/tmp/err
|
||||||
|
Loading…
x
Reference in New Issue
Block a user