1
0
mirror of https://github.com/systemd/systemd.git synced 2024-11-07 09:56:51 +03:00
Commit Graph

1105 Commits

Author SHA1 Message Date
Zbigniew Jędrzejewski-Szmek
a6f0104a16 logs-show: limit to 3 lines and use dots if not showing full message
So far, we would show up to 128 bytes from a message, simply
cutting of the rest. With multiline messages, it is quite common
for a message to be longer than that, and this model doesn't really
work anymore.

A new limit is added: up to 3 lines will be shown, unless --full is
used (c.f. first line below).  The limit for bytes is extended to 300
bytes. An ellipsis will always be used, if some form of truncation
occurs. If the tail of the message is cut off, either because of
length or line limit, dots will be shown at the end of the last
line. If this last line is short, the dots will be simply appended. If
the last line is too long for that, it will be ellipsized with dots at
the very end.

Note that the limits are in bytes, not characters, and we suck at
outputting unicode strings (c.f. last three lines below).

Aug 11 10:46:21 fedora python[67]: test message
                                   line
                                   line...
Aug 11 10:50:47 fedora python[76]: test message word word word word word word word word word word word wor...
Aug 11 10:55:11 fedora python[83]: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
Aug 11 11:03:21 fedora python[90]: ąąąąąąąąąąąąąąąąąąąąąąąąąąąąąą...
Aug 11 11:03:53 fedora python[97]: aąąąąąąąąąąąąąąąąąąąąąąąąąąąąąą...
Aug 11 11:25:45 fedora python[121]: aąąąąąąąąąąąąąąąąąąąąąąąąąąąąąąąąąą�...
2013-08-11 18:10:34 -04:00
Lennart Poettering
94bbc9915a update TODO 2013-08-09 19:05:07 +02:00
Maciej Wereski
b0693d3086 service: prohibit Restart= set when Type=oneshot 2013-08-09 18:09:21 +02:00
Kay Sievers
1fab57c209 TODO: add hwdb timestamp check 2013-08-07 16:47:31 +02:00
Kay Sievers
cff452c7e9 TODO: add weird instance unit enable behavior 2013-08-06 15:05:41 +02:00
Lennart Poettering
07beec1244 update TODO 2013-07-30 02:54:56 +02:00
Lennart Poettering
5a4555ba6b update TODO 2013-07-29 23:12:20 +02:00
Lennart Poettering
4c4ae27d4d update TODO 2013-07-29 18:43:57 +02:00
Lennart Poettering
afaba02347 update TODO 2013-07-29 16:42:22 +02:00
Kay Sievers
c0e1b50270 TODO: remove kernel env var importing fix 2013-07-27 19:55:04 +02:00
Lennart Poettering
76e665855e logind: update the session state file before we send out the CreateSession() reply
https://bugs.freedesktop.org/show_bug.cgi?id=67273
2013-07-26 19:03:54 +02:00
Lennart Poettering
a65615ca5d systemctl: move set-log-level to systemd-analyze
"systemctl set-log-level" is a command for analysis and tracing hence
"systemd-analyze" should be the better home for it, thus allowing us to
make the overly large "systemctl" a bit smaller.
2013-07-26 16:59:55 +02:00
Lennart Poettering
9ea9d4cf16 systemctl: move "dump" command from systemctl to systemd-analyze
It's an analysis command and its format is explicitly not covered by any
stability guarantees, hence move away from systemctl and into
systemd-analyze, minimizing the already large interface of systemctl a
bit.

This patch also adds auto-paging to the various systemd-analyze commands
where that makes sense
2013-07-26 16:36:25 +02:00
Lennart Poettering
d07f7b9ef2 journal: immediately sync to disk as soon as we receieve an EMERG/ALERT/CRIT message 2013-07-24 12:34:28 +02:00
Lennart Poettering
408f281bc7 NEWS: prepare half a NEWS file for upcoming 206 2013-07-22 00:17:00 +02:00
Lennart Poettering
83787333bd man: update documentation of systemctl cgroup commands 2013-07-19 19:29:08 +02:00
Lennart Poettering
847ae0ae7f man: update documentation of slice units a bit 2013-07-19 19:16:47 +02:00
Lennart Poettering
9365b048c0 man: update scope unit man page a bit 2013-07-19 19:04:17 +02:00
Lennart Poettering
3e2f69b779 man: update pam_systemd documentation to current state of the code 2013-07-19 18:52:09 +02:00
Lennart Poettering
1ec96668dd man: list scope and slice units in systemd(1) 2013-07-19 18:44:33 +02:00
Lennart Poettering
60211b3507 man: document sd_pid_get_slice() call of libsystemd-login 2013-07-19 18:10:12 +02:00
Lennart Poettering
431c72dc3d man: update systemd-nspawn regarding new --slice= logic 2013-07-19 17:55:52 +02:00
Lennart Poettering
dc7adf202b man: drop the old cgroup settings from the man pages 2013-07-19 17:23:34 +02:00
Zbigniew Jędrzejewski-Szmek
6aaa8c2f78 core: add %v specifier 2013-07-19 02:45:49 -04:00
Lennart Poettering
61ad59b131 man: document Slice= setting (and other fixes) 2013-07-19 04:10:06 +02:00
Lennart Poettering
e1b7e7ec9b update TODO 2013-07-19 03:48:23 +02:00
Kay Sievers
466784c871 TODO: update 2013-07-18 23:07:37 +02:00
Zbigniew Jędrzejewski-Szmek
52990c2e0e systemd,systemctl: export condition status and show failing condition
$ systemctl --user status hoohoo
hoohoo.service
   Loaded: loaded (/home/zbyszek/.config/systemd/user/hoohoo.service; static)
   Active: inactive (dead)
           start condition failed at Tue 2013-06-25 18:08:42 EDT; 1s ago
           ConditionPathExists=/tmp/hoo was not met

Full information is exported over D-Bus:
  [(condition, trigger, negate, param, state),...]
where state is one of "failed" (<0), "untested" (0), "OK" (>0).
I've decided to use 0 for "untested", because it might be useful to
differentiate different types of failure later on, without breaking
compatibility.

systemctl shows the failing condition, if there was a non-trigger
failing condition, or says "none of the trigger conditions were met",
because there're often many trigger conditions, and they must all
fail for the condition to fail, so printing them all would consume
a lot of space, and bring unnecessary attention to something that is
quite low-level.
2013-07-17 23:41:10 -04:00
Lennart Poettering
c3bb87dbab update TODO 2013-07-18 02:32:33 +02:00
Zbigniew Jędrzejewski-Szmek
69af450359 Update TODO
This point was done in 77a9e8de6.
2013-07-16 22:48:16 -04:00
Zbigniew Jędrzejewski-Szmek
248fc619b5 journalctl: augment short mode with a cursor at the end
Two options are added: --show-cursor to print the cursor at the end,
and --after-cursor to resume logs on the next line after the previous one.
2013-07-16 22:41:47 -04:00
Lennart Poettering
c5757cc8db update TODO 2013-07-17 02:29:19 +02:00
Lennart Poettering
e7256c5c13 update 2013-07-16 18:54:03 +02:00
Lennart Poettering
042e33ae3a rpm: add RPM macro for creating tmpfiles entries after package installation 2013-07-16 18:54:03 +02:00
Zbigniew Jędrzejewski-Szmek
a65f06bb27 journal: return -ECHILD after a fork
A few asserts are replaced with 'return -EINVAL'. I think that
assert should not be used to check argument in public functions.

Fields in struct sd_journal are rearranged to make it less
swiss-cheesy.
2013-07-16 12:09:48 -04:00
Jan Janssen
a331b5e6d4 journalctl: Add support for showing messages from a previous boot
Hi,

I redid the boot ID look up to use enumerate_unique.

This is quite fast if the cache is warm but painfully slow if
it isn't. It has a slight chance of returning the wrong order if
realtime clock jumps around.

This one has to do n searches for every boot ID there is plus
a sort, so it depends heavily on cache hotness. This is in contrast
to the other way of look-up through filtering by a MESSAGE_ID,
which only needs about 1 seek + whatever amount of relative IDs
you want to walk.

I also have a linked-list + (in-place) mergesort version of this
patch, which has pretty much the same runtime. But since this one
is using libc sorting and armortized allocation, I prefer this
one.

To summarize: The MESSAGE_ID way is a *lot* faster but can be
incomplete due to rotation, while the enumerate+sort will find
every boot ID out there but will be painfully slow for large
journals and cold caches.

You choose :P

Jan
2013-07-16 17:38:12 +02:00
Lennart Poettering
18d4e7c26e update TODO 2013-07-16 17:37:49 +02:00
Lennart Poettering
36c0868b67 Update TODO 2013-07-16 14:27:32 +02:00
Shawn Landden
3a83211689 journal: add logging of effective capabilities _CAP_EFFECTIVE
I think this is the most important of the capabilities bitmasks to log.
2013-07-16 04:27:04 +02:00
Lennart Poettering
fa7deadb07 update TODO 2013-07-16 04:27:04 +02:00
Zbigniew Jędrzejewski-Szmek
77a9e8de65 man: add note about paging and colors to journalctl(1) 2013-07-15 21:34:57 -04:00
Lennart Poettering
d907c20867 update TODO 2013-07-15 23:55:27 +02:00
Lennart Poettering
248aa28ff2 update TODO 2013-07-15 23:55:27 +02:00
Lennart Poettering
47a1454f70 update TODO 2013-07-12 01:18:09 +02:00
Lennart Poettering
1e1ddecf40 update TODO 2013-07-11 21:30:19 +02:00
Lennart Poettering
c14901bdeb update TODO 2013-07-11 19:16:11 +02:00
Lennart Poettering
05b23cae8e update TODO 2013-07-11 18:49:53 +02:00
Lennart Poettering
049b4474b3 update TODO 2013-07-11 01:56:45 +02:00
Lennart Poettering
bafb15bab9 update TODO 2013-07-11 00:32:32 +02:00
Lennart Poettering
49998ede04 update TODO 2013-07-10 23:46:30 +02:00
Lennart Poettering
bdeeb6b543 update TODO 2013-07-10 23:41:03 +02:00
Tom Gundersen
edeb68c53f static-nodes: move creation of static nodes from udevd to tmpfiles
As of kmod v14, it is possible to export the static node information from
/lib/modules/`uname -r`/modules.devname in tmpfiles.d(5) format.

Use this functionality to let systemd-tmpfilesd create the static device nodes
at boot, and drop the functionality from systemd-udevd.

As an effect of this we can move from systemd-udevd to systemd-tmpfiles-setup-dev:

 * the conditional CAP_MKNOD (replaced by checking if /sys is mounted rw)
 * ordering before local-fs-pre.target (see 89d09e1b5c)
2013-07-08 21:26:24 +02:00
Kay Sievers
26306aed13 update TODO 2013-07-05 14:59:52 +02:00
Lennart Poettering
b0adb5468c update TODO 2013-07-04 01:09:04 +02:00
Lennart Poettering
174da5c5ca update TODO 2013-07-03 17:43:13 +02:00
Lennart Poettering
51da82a781 machined: fix bus path unescaping 2013-07-02 03:58:28 +02:00
Lennart Poettering
374ec6abf3 libsystemd-logind: fix detection of session/user/machine of a PID 2013-07-02 02:34:15 +02:00
Lennart Poettering
fb6becb443 logind: port over to use scopes+slices for all cgroup stuff
In order to prepare things for the single-writer cgroup scheme, let's
make logind use systemd's own primitives for cgroup management.

Every login user now gets his own private slice unit, in which his sessions
live in a scope unit each. Also, add user@$UID.service to the same
slice, and implicitly start it on first login.
2013-07-02 01:48:55 +02:00
Lennart Poettering
d28e9236e7 core: parse Slice= from the unit type specific unit file section
Since not all unit types know Slice= it belongs in the unit type
specific unit file section.
2013-07-01 02:52:17 +02:00
Lennart Poettering
6c12b52e19 core: add new "scope" unit type for making a unit of pre-existing processes
"Scope" units are very much like service units, however with the
difference that they are created from pre-existing processes, rather
than processes that systemd itself forks off. This means they are
generated programmatically via the bus API as transient units rather
than from static configuration read from disk. Also, they do not provide
execution-time parameters, as at the time systemd adds the processes to
the scope unit they already exist and the parameters cannot be applied
anymore.

The primary benefit of this new unit type is to create arbitrary cgroups
for worker-processes forked off an existing service.

This commit also adds a a new mode to "systemd-run" to run the specified
processes in a scope rather then a transient service.
2013-07-01 00:18:00 +02:00
Lennart Poettering
11ddb6f48e main: fix loading of default target 2013-06-28 18:37:15 +02:00
Lennart Poettering
c2756a6840 core: add transient units
Transient units can be created via the bus API. They are configured via
the method call parameters rather than on-disk files. They are subject
to normal GC. Transient units currently may only be created for
services (however, we will extend this), and currently only ExecStart=
and the cgroup parameters can be configured (also to be extended).

Transient units require a unique name, that previously had no
configuration file on disk.

A tool systemd-run is added that makes use of this functionality to run
arbitrary command lines as transient services:

$ systemd-run /bin/ping www.heise.de

Will cause systemd to create a new transient service and run ping in it.
2013-06-28 04:12:58 +02:00
Lennart Poettering
241da3287d unit: make sure the dropins we write are high-priority 2013-06-28 00:41:24 +02:00
Lennart Poettering
7041efe960 dbus: make DeviceAllow=/DevicePolicy= writable 2013-06-27 23:13:17 +02:00
Lennart Poettering
b42defe3b8 dbus: make more cgroup attributes runtime settable 2013-06-27 21:50:35 +02:00
Lennart Poettering
8e2af47840 dbus: add infrastructure for changing multiple properties at once on units and hook some cgroup attributes up to it
This introduces two bus calls to make runtime changes to selected bus
properties, optionally with persistence.

This currently hooks this up only for three cgroup atributes, but this
brings the infrastructure to add more changable attributes.

This allows setting multiple attributes at once, and takes an array
rather than a dictionary of properties, in order to implement simple
resetting of lists using the same approach as when they are sourced from
unit files. This means, that list properties are appended to by this
call, unless they are first reset via assigning the empty list.
2013-06-27 21:14:56 +02:00
Lennart Poettering
4ad490007b core: general cgroup rework
Replace the very generic cgroup hookup with a much simpler one. With
this change only the high-level cgroup settings remain, the ability to
set arbitrary cgroup attributes is removed, so is support for adding
units to arbitrary cgroup controllers or setting arbitrary paths for
them (especially paths that are different for the various controllers).

This also introduces a new -.slice root slice, that is the parent of
system.slice and friends. This enables easy admin configuration of
root-level cgrouo properties.

This replaces DeviceDeny= by DevicePolicy=, and implicitly adds in
/dev/null, /dev/zero and friends if DeviceAllow= is used (unless this is
turned off by DevicePolicy=).
2013-06-27 04:17:34 +02:00
Lennart Poettering
f123dba8b1 update TODO 2013-06-21 15:57:57 +02:00
Lennart Poettering
3d3ee759e6 update TODO 2013-06-20 23:32:13 +02:00
Lennart Poettering
ba73ed858f sd-login: update machine enumeration/notifications APIs for new /run/systemd/machines/ 2013-06-20 04:03:38 +02:00
Lennart Poettering
9444b1f20e logind: add infrastructure to keep track of machines, and move to slices
- This changes all logind cgroup objects to use slice objects rather
  than fixed croup locations.

- logind can now collect minimal information about running
  VMs/containers. As fixed cgroup locations can no longer be used we
  need an entity that keeps track of machine cgroups in whatever slice
  they might be located. Since logind already keeps track of users,
  sessions and seats this is a trivial addition.

- nspawn will now register with logind and pass various bits of metadata
  along. A new option "--slice=" has been added to place the container
  in a specific slice.

- loginctl gained commands to list, introspect and terminate machines.

- user.slice and machine.slice will now be pulled in by logind.service,
  since only logind.service requires this slice.
2013-06-20 03:49:59 +02:00
Lennart Poettering
55d32caf94 update TODO 2013-06-18 16:06:36 +02:00
Zbigniew Jędrzejewski-Szmek
718fe4b1d5 journalctl: properly print headers of empty journals 2013-06-18 08:50:08 -04:00
Lennart Poettering
a016b9228f core: add new .slice unit type for partitioning systems
In order to prepare for the kernel cgroup rework, let's introduce a new
unit type to systemd, the "slice". Slices can be arranged in a tree and
are useful to partition resources freely and hierarchally by the user.

Each service unit can now be assigned to one of these slices, and later
on login users and machines may too.

Slices translate pretty directly to the cgroup hierarchy, and the
various objects can be assigned to any of the slices in the tree.
2013-06-17 21:36:51 +02:00
Lennart Poettering
1f263d4dc2 update TODO 2013-06-11 08:55:42 +02:00
Zbigniew Jędrzejewski-Szmek
87011c25d9 journal: remember last direction of search and keep offset cache
The fields in JournalFile are moved around to avoid wasting
7 bytes because of alignment.
2013-06-10 10:10:07 -04:00
Zbigniew Jędrzejewski-Szmek
6eb7a9a001 tests: add test for empty journal files
The headers are currently not printed properly: some "(null)"s appear.
2013-06-10 10:10:07 -04:00
Lennart Poettering
4e09014daf update TODO 2013-06-06 16:25:58 +02:00
Zbigniew Jędrzejewski-Szmek
5ec7641776 systemctl: limit logs in status to current boot
Also reworded a few debug messages for brevity, and added a log
statement which prints out the filter at debug level:

Journal filter: (((UNIT=sys-module-configfs.device AND _PID=1) OR (COREDUMP_UNIT=sys-module-configfs.device AND MESSAGE_ID=fc2e22bc6ee647b6b90729ab34a250b1) OR _SYSTEMD_UNIT=sys-module-configfs.device) AND _BOOT_ID=4e3c518ab0474c12ac8de7896fe6b154)
2013-06-04 09:59:06 -04:00
Václav Pavlín
76d5a71de9 systemctl: add command set-log-level
Command changes current log level
2013-05-30 20:44:41 -04:00
Lukas Nykryn
9749cd77bc core: read "debug" from kernel commandline and set log level 2013-05-30 00:43:39 -04:00
Lennart Poettering
86312ab8de bus: add a more comprehensive test for the bloom filter logic 2013-05-20 10:13:38 +02:00
Lennart Poettering
c78196699d bus: calculate bloom filter for match
Yay! Filtering using kernel bloom filter matches works now! Yippieh!
2013-05-20 10:13:38 +02:00
Lennart Poettering
264ad849a4 bus: add APIs for negotiating what is attached to messages 2013-05-17 04:26:27 +02:00
Lennart Poettering
45fbe937d7 bus: add minimal locking around the memfd cache
We want to allow clients to process an sd_bus_message on a different
thread than it was received on. Since unreffing a bus message might
readd some of its memfds to the memfd cache add some minimal locking
around the cache.
2013-05-17 04:26:27 +02:00
Lennart Poettering
d5a2b9a6f4 bus: return ECHILD as soon as people try to reuse a bus connection across a fork() 2013-05-17 04:26:27 +02:00
Lukas Nykryn
0000ce05ed systemd-delta: add support for drop-in snippets 2013-05-16 17:23:28 -04:00
Lennart Poettering
e4ee6e5cc3 bus: make bus ref counting atomic
This is preparation to allow sd_bus_message obejcts to be processed in a
different thread from their originating sd_bus object.
2013-05-16 21:58:34 +02:00
Lennart Poettering
eb01ba5de1 bus: synthesize timeout message errors instead of returning error codes 2013-05-16 21:14:56 +02:00
Lennart Poettering
154ff088d3 update TODO 2013-05-15 22:40:36 +02:00
Zbigniew Jędrzejewski-Szmek
9927180417 journalctl: add -k/--dmesg 2013-05-14 23:08:00 -04:00
Lennart Poettering
7e853a9b9a update TODO 2013-05-14 14:01:20 +02:00
Kay Sievers
32821c76d5 TODO: add "debug" kernel cmdline switch 2013-05-13 22:21:54 +02:00
Auke Kok
9d995d54b5 Add support for ConditionSecurity=ima
Just as with SMACK, we don't really know if a policy has been
loaded or not, as the policy interface is write-only. Assume
therefore that if ima is present in securityfs that it is
enabled.

Update the man page to reflect that "ima" is a valid option
now as well.
2013-05-11 13:42:55 -07:00
Lennart Poettering
a7c54c8c1f bus: extend memfd test 2013-05-10 17:34:14 +02:00
Lennart Poettering
cdf173349c update TODO 2013-05-07 20:56:41 +02:00
Lennart Poettering
815ac0f1db update TODO 2013-05-07 02:42:15 +02:00
Zbigniew Jędrzejewski-Szmek
19adb8a320 systemd-sleep: add support for freeze and standby
A new config file /etc/systemd/sleep.conf is added.
It is parsed by systemd-sleep and logind. The strings written
to /sys/power/disk and /sys/power/state can be configured.
This allows people to use different modes of suspend on
systems with broken or special hardware.

Configuration is shared between systemd-sleep and logind
to enable logind to answer the question "can the system be
put to sleep" as correctly as possible without actually
invoking the action. If the user configured systemd-sleep
to only use 'freeze', but current kernel does not support it,
logind will properly report that the system cannot be put
to sleep.

https://bugs.freedesktop.org/show_bug.cgi?id=57793
https://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commit;h=7e73c5ae6e7991a6c01f6d096ff8afaef4458c36
http://lists.freedesktop.org/archives/systemd-devel/2013-February/009238.html

SYSTEM_CONFIG_FILE and USER_CONFIG_FILE defines were removed
since they were used in only a few places and with the
addition of /etc/systemd/sleep.conf it becomes easier to just
append the name of each file to the dir name.
2013-05-06 22:51:57 +02:00
Lennart Poettering
d686f034c3 update TODO 2013-05-06 22:28:56 +02:00
Kay Sievers
b4763d9d4c TODO: update 2013-05-06 17:38:27 +02:00