summaryrefslogtreecommitdiff
path: root/src/journal/journalctl.c
diff options
context:
space:
mode:
authorDaniel Wallace <danielwallace@gtmanfred.com>2013-03-01 14:39:04 +0100
committerLennart Poettering <lennart@poettering.net>2013-03-01 14:39:04 +0100
commitffa7cd15cd2a9e802827ef0f5762de6c22933c07 (patch)
tree343330dc70c19196246e27fed3fe4e59658faa68 /src/journal/journalctl.c
parent242c4e1cc4d6419043729904d7dd88b2b1283556 (diff)
journalctl: add --user-unit= switch
Add --user-unit= to make it possible to query for user logs by the name of the service.
Diffstat (limited to 'src/journal/journalctl.c')
-rw-r--r--src/journal/journalctl.c13
1 files changed, 12 insertions, 1 deletions
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();