mirror of
https://github.com/AuxXxilium/eudev.git
synced 2024-12-14 18:45:48 +07:00
journal: introduce log target 'journal' for executed processes
This commit is contained in:
parent
db5973704b
commit
706343f492
@ -81,7 +81,7 @@
|
||||
<term><varname>ShowStatus=yes</varname></term>
|
||||
<term><varname>SysVConsole=yes</varname></term>
|
||||
<term><varname>CrashChVT=1</varname></term>
|
||||
<term><varname>DefaultStandardOutput=null</varname></term>
|
||||
<term><varname>DefaultStandardOutput=journal</varname></term>
|
||||
<term><varname>DefaultStandardError=inherit</varname></term>
|
||||
|
||||
<listitem><para>Configures various
|
||||
|
@ -366,8 +366,10 @@
|
||||
<option>tty</option>,
|
||||
<option>syslog</option>,
|
||||
<option>kmsg</option>,
|
||||
<option>journal</option>,
|
||||
<option>syslog+console</option>,
|
||||
<option>kmsg+console</option>,
|
||||
<option>syslog+console</option> or
|
||||
<option>journal+console</option> or
|
||||
<option>socket</option>. If set to
|
||||
<option>inherit</option> the file
|
||||
descriptor of standard input is
|
||||
@ -392,8 +394,17 @@
|
||||
service. <option>kmsg</option>
|
||||
connects it with the kernel log buffer
|
||||
which is accessible via
|
||||
<citerefentry><refentrytitle>dmesg</refentrytitle><manvolnum>1</manvolnum></citerefentry>. <option>syslog+console</option>
|
||||
and <option>kmsg+console</option> work
|
||||
<citerefentry><refentrytitle>dmesg</refentrytitle><manvolnum>1</manvolnum></citerefentry>. <option>journal</option>
|
||||
connects it with the journal which is
|
||||
accessible via
|
||||
<citerefentry><refentrytitle>systemd-journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||
(Note that everything that is written
|
||||
to syslog or kmsg is implicitly stored
|
||||
in the journal as well, those options
|
||||
are hence supersets of this
|
||||
one). <option>syslog+console</option>,
|
||||
<option>journal+console</option> and
|
||||
<option>kmsg+console</option> work
|
||||
similarly but copy the output to the
|
||||
system console as
|
||||
well. <option>socket</option> connects
|
||||
@ -407,7 +418,7 @@
|
||||
in
|
||||
<citerefentry><refentrytitle>systemd.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
|
||||
which defaults to
|
||||
<option>syslog</option>.</para></listitem>
|
||||
<option>journal</option>.</para></listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><varname>StandardError=</varname></term>
|
||||
|
@ -211,7 +211,7 @@ static int connect_logger_as(const ExecContext *context, ExecOutput output, cons
|
||||
!!context->syslog_level_prefix,
|
||||
output == EXEC_OUTPUT_SYSLOG || output == EXEC_OUTPUT_SYSLOG_AND_CONSOLE,
|
||||
output == EXEC_OUTPUT_KMSG || output == EXEC_OUTPUT_KMSG_AND_CONSOLE,
|
||||
output == EXEC_OUTPUT_SYSLOG_AND_CONSOLE || output == EXEC_OUTPUT_KMSG_AND_CONSOLE);
|
||||
output == EXEC_OUTPUT_SYSLOG_AND_CONSOLE || output == EXEC_OUTPUT_KMSG_AND_CONSOLE || output == EXEC_OUTPUT_JOURNAL_AND_CONSOLE);
|
||||
|
||||
if (fd != nfd) {
|
||||
r = dup2(fd, nfd) < 0 ? -errno : nfd;
|
||||
@ -351,6 +351,8 @@ static int setup_output(const ExecContext *context, int socket_fd, const char *i
|
||||
case EXEC_OUTPUT_SYSLOG_AND_CONSOLE:
|
||||
case EXEC_OUTPUT_KMSG:
|
||||
case EXEC_OUTPUT_KMSG_AND_CONSOLE:
|
||||
case EXEC_OUTPUT_JOURNAL:
|
||||
case EXEC_OUTPUT_JOURNAL_AND_CONSOLE:
|
||||
return connect_logger_as(context, o, ident, STDOUT_FILENO);
|
||||
|
||||
case EXEC_OUTPUT_SOCKET:
|
||||
@ -404,6 +406,8 @@ static int setup_error(const ExecContext *context, int socket_fd, const char *id
|
||||
case EXEC_OUTPUT_SYSLOG_AND_CONSOLE:
|
||||
case EXEC_OUTPUT_KMSG:
|
||||
case EXEC_OUTPUT_KMSG_AND_CONSOLE:
|
||||
case EXEC_OUTPUT_JOURNAL:
|
||||
case EXEC_OUTPUT_JOURNAL_AND_CONSOLE:
|
||||
return connect_logger_as(context, e, ident, STDERR_FILENO);
|
||||
|
||||
case EXEC_OUTPUT_SOCKET:
|
||||
@ -1749,10 +1753,10 @@ void exec_context_dump(ExecContext *c, FILE* f, const char *prefix) {
|
||||
prefix, yes_no(c->tty_vhangup),
|
||||
prefix, yes_no(c->tty_vt_disallocate));
|
||||
|
||||
if (c->std_output == EXEC_OUTPUT_SYSLOG || c->std_output == EXEC_OUTPUT_KMSG ||
|
||||
c->std_output == EXEC_OUTPUT_SYSLOG_AND_CONSOLE || c->std_output == EXEC_OUTPUT_KMSG_AND_CONSOLE ||
|
||||
c->std_error == EXEC_OUTPUT_SYSLOG || c->std_error == EXEC_OUTPUT_KMSG ||
|
||||
c->std_error == EXEC_OUTPUT_SYSLOG_AND_CONSOLE || c->std_error == EXEC_OUTPUT_KMSG_AND_CONSOLE)
|
||||
if (c->std_output == EXEC_OUTPUT_SYSLOG || c->std_output == EXEC_OUTPUT_KMSG || c->std_output == EXEC_OUTPUT_JOURNAL ||
|
||||
c->std_output == EXEC_OUTPUT_SYSLOG_AND_CONSOLE || c->std_output == EXEC_OUTPUT_KMSG_AND_CONSOLE || c->std_output == EXEC_OUTPUT_JOURNAL_AND_CONSOLE ||
|
||||
c->std_error == EXEC_OUTPUT_SYSLOG || c->std_error == EXEC_OUTPUT_KMSG || c->std_error == EXEC_OUTPUT_JOURNAL ||
|
||||
c->std_error == EXEC_OUTPUT_SYSLOG_AND_CONSOLE || c->std_error == EXEC_OUTPUT_KMSG_AND_CONSOLE || c->std_error == EXEC_OUTPUT_JOURNAL_AND_CONSOLE)
|
||||
fprintf(f,
|
||||
"%sSyslogFacility: %s\n"
|
||||
"%sSyslogLevel: %s\n",
|
||||
@ -2036,6 +2040,8 @@ static const char* const exec_output_table[_EXEC_OUTPUT_MAX] = {
|
||||
[EXEC_OUTPUT_SYSLOG_AND_CONSOLE] = "syslog+console",
|
||||
[EXEC_OUTPUT_KMSG] = "kmsg",
|
||||
[EXEC_OUTPUT_KMSG_AND_CONSOLE] = "kmsg+console",
|
||||
[EXEC_OUTPUT_JOURNAL] = "journal",
|
||||
[EXEC_OUTPUT_JOURNAL_AND_CONSOLE] = "journal+console",
|
||||
[EXEC_OUTPUT_SOCKET] = "socket"
|
||||
};
|
||||
|
||||
|
@ -74,6 +74,8 @@ typedef enum ExecOutput {
|
||||
EXEC_OUTPUT_SYSLOG_AND_CONSOLE,
|
||||
EXEC_OUTPUT_KMSG,
|
||||
EXEC_OUTPUT_KMSG_AND_CONSOLE,
|
||||
EXEC_OUTPUT_JOURNAL,
|
||||
EXEC_OUTPUT_JOURNAL_AND_CONSOLE,
|
||||
EXEC_OUTPUT_SOCKET,
|
||||
_EXEC_OUTPUT_MAX,
|
||||
_EXEC_OUTPUT_INVALID = -1
|
||||
|
@ -77,7 +77,7 @@ static bool arg_mount_auto = true;
|
||||
static bool arg_swap_auto = true;
|
||||
static char **arg_default_controllers = NULL;
|
||||
static char ***arg_join_controllers = NULL;
|
||||
static ExecOutput arg_default_std_output = EXEC_OUTPUT_SYSLOG;
|
||||
static ExecOutput arg_default_std_output = EXEC_OUTPUT_JOURNAL;
|
||||
static ExecOutput arg_default_std_error = EXEC_OUTPUT_INHERIT;
|
||||
|
||||
static FILE* serialization = NULL;
|
||||
@ -348,9 +348,9 @@ static int parse_proc_cmdline_word(const char *word) {
|
||||
"systemd.log_level=LEVEL Log level\n"
|
||||
"systemd.log_color=0|1 Highlight important log messages\n"
|
||||
"systemd.log_location=0|1 Include code location in log messages\n"
|
||||
"systemd.default_standard_output=null|tty|syslog|syslog+console|kmsg|kmsg+console\n"
|
||||
"systemd.default_standard_output=null|tty|syslog|syslog+console|kmsg|kmsg+console|journal|journal+console\n"
|
||||
" Set default log output for services\n"
|
||||
"systemd.default_standard_error=null|tty|syslog|syslog+console|kmsg|kmsg+console\n"
|
||||
"systemd.default_standard_error=null|tty|syslog|syslog+console|kmsg|kmsg+console|journal|journal+console\n"
|
||||
" Set default log error output for services\n");
|
||||
|
||||
} else if (streq(word, "quiet")) {
|
||||
|
@ -841,7 +841,7 @@ static int service_load_sysv_path(Service *s, const char *path) {
|
||||
s->restart = SERVICE_RESTART_NO;
|
||||
|
||||
if (s->meta.manager->sysv_console)
|
||||
s->exec_context.std_output = EXEC_OUTPUT_SYSLOG_AND_CONSOLE;
|
||||
s->exec_context.std_output = EXEC_OUTPUT_JOURNAL_AND_CONSOLE;
|
||||
|
||||
s->exec_context.kill_mode = KILL_PROCESS;
|
||||
|
||||
|
@ -21,6 +21,6 @@
|
||||
#MountAuto=yes
|
||||
#SwapAuto=yes
|
||||
#DefaultControllers=cpu
|
||||
#DefaultStandardOutput=syslog
|
||||
#DefaultStandardOutput=journal
|
||||
#DefaultStandardError=inherit
|
||||
#JoinControllers=cpu,cpuacct
|
||||
|
@ -561,11 +561,15 @@ int unit_add_exec_dependencies(Unit *u, ExecContext *c) {
|
||||
|
||||
if (c->std_output != EXEC_OUTPUT_KMSG &&
|
||||
c->std_output != EXEC_OUTPUT_SYSLOG &&
|
||||
c->std_output != EXEC_OUTPUT_JOURNAL &&
|
||||
c->std_output != EXEC_OUTPUT_KMSG_AND_CONSOLE &&
|
||||
c->std_output != EXEC_OUTPUT_SYSLOG_AND_CONSOLE &&
|
||||
c->std_output != EXEC_OUTPUT_JOURNAL_AND_CONSOLE &&
|
||||
c->std_error != EXEC_OUTPUT_KMSG &&
|
||||
c->std_error != EXEC_OUTPUT_SYSLOG &&
|
||||
c->std_error != EXEC_OUTPUT_JOURNAL &&
|
||||
c->std_error != EXEC_OUTPUT_KMSG_AND_CONSOLE &&
|
||||
c->std_error != EXEC_OUTPUT_JOURNAL_AND_CONSOLE &&
|
||||
c->std_error != EXEC_OUTPUT_SYSLOG_AND_CONSOLE)
|
||||
return 0;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user