diff options
-rw-r--r-- | man/journalctl.xml | 11 | ||||
-rw-r--r-- | shell-completion/systemd-bash-completion.sh | 5 | ||||
-rw-r--r-- | shell-completion/systemd-zsh-completion.zsh | 1 | ||||
-rw-r--r-- | src/journal/journalctl.c | 13 |
4 files changed, 28 insertions, 2 deletions
diff --git a/man/journalctl.xml b/man/journalctl.xml index ca940fec7e..e2740e4213 100644 --- a/man/journalctl.xml +++ b/man/journalctl.xml @@ -314,6 +314,17 @@ </varlistentry> <varlistentry> + <term><option>--user-unit=</option></term> + + <listitem><para>Show data only of the + specified user session unit. This will + add a match for + <literal>_SYSTEMD_USER_UNIT=</literal> + for the specified + unit.</para></listitem> + </varlistentry> + + <varlistentry> <term><option>-p</option></term> <term><option>--priority=</option></term> diff --git a/shell-completion/systemd-bash-completion.sh b/shell-completion/systemd-bash-completion.sh index 7848bafc17..40e66e9d10 100644 --- a/shell-completion/systemd-bash-completion.sh +++ b/shell-completion/systemd-bash-completion.sh @@ -300,7 +300,7 @@ _journalctl() { -h --help -l --local --new-id128 -m --merge --no-pager --no-tail -q --quiet --setup-keys --this-boot --verify --version --list-catalog --update-catalog' - [ARG]='-D --directory -F --field -o --output -u --unit' + [ARG]='-D --directory -F --field -o --output -u --unit --user-unit' [ARGUNKNOWN]='-c --cursor --interval -n --lines -p --priority --since --until --verify-key' ) @@ -320,6 +320,9 @@ _journalctl() { --unit|-u) comps=$(journalctl -F '_SYSTEMD_UNIT') ;; + --user-unit) + comps=$(journalctl -F '_SYSTEMD_USER_UNIT') + ;; *) return 0 ;; diff --git a/shell-completion/systemd-zsh-completion.zsh b/shell-completion/systemd-zsh-completion.zsh index 177a564d38..46e29b217a 100644 --- a/shell-completion/systemd-zsh-completion.zsh +++ b/shell-completion/systemd-zsh-completion.zsh @@ -70,6 +70,7 @@ _ctls() {-c,--cursor=}'[Start showing entries from specified cursor]:cursors:_journal_fields __CURSORS' \ {-b,--this-boot}'[Show data only from current boot]' \ {-u,--unit=}'[Show data only from the specified unit]:units:_journal_fields _SYSTEMD_UNIT' \ + '--user-unit[Show data only from the specified user session unit]:units:_journal_fields _SYSTEMD_USER_UNIT' \ {-p,--priority=}'[Show only messages within the specified priority range]:priority:_journal_fields PRIORITY' \ {-f,--follow}'[Follow journal]' \ {-n,--lines=}'[Number of journal entries to show]:integer' \ diff --git a/src/journal/journalctl.c b/src/journal/journalctl.c index 4c9862fa6c..d898ae7179 100644 --- a/src/journal/journalctl.c +++ b/src/journal/journalctl.c @@ -75,6 +75,7 @@ static usec_t arg_interval = DEFAULT_FSS_INTERVAL_USEC; static usec_t arg_since, arg_until; static bool arg_since_set = false, arg_until_set = false; static const char *arg_unit = NULL; +static const char *arg_unit_type = NULL; static const char *arg_field = NULL; static bool arg_catalog = false; static bool arg_reverse = false; @@ -100,6 +101,7 @@ static int help(void) { " -c --cursor=CURSOR Start showing entries from specified cursor\n" " -b --this-boot Show data only from current boot\n" " -u --unit=UNIT Show data only from the specified unit\n" + " --user-unit=UNIT Show data only from the specified user session unit\n" " -p --priority=RANGE Show only messages within the specified priority range\n" " -f --follow Follow journal\n" " -n --lines[=INTEGER] Number of journal entries to show\n" @@ -152,6 +154,7 @@ static int parse_argv(int argc, char *argv[]) { ARG_DISK_USAGE, ARG_SINCE, ARG_UNTIL, + ARG_USER_UNIT, ARG_LIST_CATALOG, ARG_UPDATE_CATALOG }; @@ -181,6 +184,7 @@ static int parse_argv(int argc, char *argv[]) { { "cursor", required_argument, NULL, 'c' }, { "since", required_argument, NULL, ARG_SINCE }, { "until", required_argument, NULL, ARG_UNTIL }, + { "user-unit", required_argument, NULL, ARG_USER_UNIT }, { "unit", required_argument, NULL, 'u' }, { "field", required_argument, NULL, 'F' }, { "catalog", no_argument, NULL, 'x' }, @@ -404,8 +408,14 @@ static int parse_argv(int argc, char *argv[]) { arg_until_set = true; break; + case ARG_USER_UNIT: + arg_unit = optarg; + arg_unit_type = "_SYSTEMD_USER_UNIT="; + break; + case 'u': arg_unit = optarg; + arg_unit_type = "_SYSTEMD_UNIT="; break; case '?': @@ -583,7 +593,8 @@ static int add_unit(sd_journal *j) { if (!u) return log_oom(); - m = strappend("_SYSTEMD_UNIT=", u); + m = strappend(arg_unit_type, u); + if (!m) return log_oom(); |