mirror of
https://github.com/systemd/systemd.git
synced 2024-10-30 06:25:37 +03:00
log: make tools also read the kernel command line when run as a service
This effectively reverts 41d1f469cf
.
Before this, e.g., `networkctl reload` invoked by `systemctl reload systemd-networkd.service`
does not produce debugging logs even if systemd.log-level=debug is set. This fixes
the issue.
This commit is contained in:
parent
8ccc31d498
commit
74189020eb
@ -1158,20 +1158,16 @@ static int parse_proc_cmdline_item(const char *key, const char *value, void *dat
|
||||
}
|
||||
|
||||
void log_parse_environment(void) {
|
||||
const char *e;
|
||||
|
||||
/* Do not call from library code. */
|
||||
|
||||
if (getpid_cached() == 1 || get_ctty_devnr(0, NULL) < 0)
|
||||
/* Only try to read the command line in daemons. We assume that anything that has a
|
||||
* controlling tty is user stuff. For PID1 we do a special check in case it hasn't
|
||||
* closed the console yet. */
|
||||
(void) proc_cmdline_parse(parse_proc_cmdline_item, NULL, PROC_CMDLINE_STRIP_RD_PREFIX);
|
||||
|
||||
log_parse_environment_cli();
|
||||
}
|
||||
|
||||
void log_parse_environment_cli(void) {
|
||||
/* Do not call from library code. */
|
||||
|
||||
const char *e;
|
||||
|
||||
e = getenv("SYSTEMD_LOG_TARGET");
|
||||
if (e && log_set_target_from_string(e) < 0)
|
||||
log_warning("Failed to parse log target '%s'. Ignoring.", e);
|
||||
@ -1474,7 +1470,7 @@ void log_setup_cli(void) {
|
||||
/* Sets up logging the way it is most appropriate for running a program as a CLI utility. */
|
||||
|
||||
log_set_target(LOG_TARGET_AUTO);
|
||||
log_parse_environment_cli();
|
||||
log_parse_environment();
|
||||
(void) log_open();
|
||||
if (log_on_console() && show_color < 0)
|
||||
log_show_color(true);
|
||||
|
@ -69,7 +69,6 @@ void log_close(void);
|
||||
void log_forget_fds(void);
|
||||
|
||||
void log_parse_environment(void);
|
||||
void log_parse_environment_cli(void);
|
||||
|
||||
int log_dispatch_internal(
|
||||
int level,
|
||||
|
@ -1121,7 +1121,7 @@ static int run(int argc, char **argv) {
|
||||
int r;
|
||||
|
||||
log_show_color(true);
|
||||
log_parse_environment_cli();
|
||||
log_parse_environment();
|
||||
|
||||
/* The journal merging logic potentially needs a lot of fds. */
|
||||
(void) rlimit_nofile_bump(HIGH_RLIMIT_NOFILE);
|
||||
|
@ -820,7 +820,7 @@ static int run(int argc, char **argv) {
|
||||
int r;
|
||||
|
||||
log_show_color(true);
|
||||
log_parse_environment_cli();
|
||||
log_parse_environment();
|
||||
|
||||
/* The journal merging logic potentially needs a lot of fds. */
|
||||
(void) rlimit_nofile_bump(HIGH_RLIMIT_NOFILE);
|
||||
|
@ -1085,7 +1085,7 @@ static int run(int argc, char *argv[]) {
|
||||
int r;
|
||||
|
||||
setlocale(LC_ALL, "");
|
||||
log_parse_environment_cli();
|
||||
log_parse_environment();
|
||||
log_open();
|
||||
|
||||
/* The journal merging logic potentially needs a lot of fds. */
|
||||
|
Loading…
Reference in New Issue
Block a user