Age | Commit message (Collapse) | Author |
|
"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.
|
|
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
|
|
|
|
The font-size was missing a unit so they were ignored. This patch sets
the unit to 'px' and adjusts the sizes a bit as the text got very small.
|
|
This will add another color to the legend called "Loading unit files"
Like the generators it will mark a part of the systemd bar indicating
the time spent while loading unit files.
|
|
|
|
cg_get_machine_path is modified to include the escaped machine name
+ ".nspawn" if the machine argument is nonnull.
|
|
|
|
"critical-chain" prints a tree of the critical chain of units
$ ./systemd-analyze critical-chain
graphical.target @1.226s
└─multi-user.target @1.226s
└─nfs-lock.service @961ms +265ms
└─rpcbind.service @958ms +1ms
└─network.target @957ms
└─NetworkManager.service @434ms +522ms
└─basic.target @428ms
└─sockets.target @428ms
└─dbus.socket @428ms
└─sysinit.target @427ms
└─systemd-tmpfiles-setup.service @411ms +15ms
└─local-fs.target @410ms
└─boot-efi.automount @410ms
└─boot.mount @397ms +9ms
└─local-fs-pre.target @192ms
└─systemd-udevd.service @187ms +5ms
└─systemd-udevd-control.socket @140ms
└─-.mount
With the "--fuzz=<ms>" parameter one can display more units around
the critical units.
$ ./systemd-analyze --fuzz=10ms critical-chain
└─multi-user.target @1.226s
└─nfs-lock.service @961ms +265ms
├─rpcbind.service @958ms +1ms
│ └─network.target @957ms
│ └─NetworkManager.service @434ms +522ms
│ ├─basic.target @428ms
│ │ ├─sockets.target @428ms
│ │ │ ├─dbus.socket @428ms
│ │ │ │ └─sysinit.target @427ms
│ │ │ │ ├─systemd-tmpfiles-setup.service @411ms +15ms
│ │ │ │ │ └─local-fs.target @410ms
│ │ │ │ │ └─boot-efi.automount @410ms
│ │ │ │ │ └─boot.mount @397ms +9ms
│ │ │ │ │ └─local-fs-pre.target @192ms
│ │ │ │ │ └─systemd-udevd.service @187ms +5ms
│ │ │ │ │ ├─systemd-udevd-control.socket @140ms
│ │ │ │ │ │ └─-.mount
│ │ │ │ │ └─systemd-udevd-kernel.socket @140ms
│ │ │ │ └─swap.target @421ms
│ │ │ │ └─dev-disk-by\x2duuid-....swap @414ms +6ms
│ │ │ │ └─systemd-journald.socket
│ │ │ ├─rpcbind.socket @428ms
│ │ │ └─cups.socket @428ms
│ │ ├─paths.target @428ms
│ │ │ └─cups.path @428ms
│ │ ├─timers.target @427ms
│ │ │ └─systemd-tmpfiles-clean.timer @427ms
│ │ └─sysinit.target @427ms
│ │ └─...
│ └─dbus.socket @428ms
│ └─...
└─network.target @957ms
└─...
|
|
|
|
|
|
|
|
Make "systemd-analyze dot" output only lines with units matching
given glob(7) patterns. Add --from-pattern and --to-pattern options.
Without any patterns all relationships are printed as before.
A relationship must match the follwing expression:
(isempty(from) || from[0] || from[1] || .. || from[n]) &&
(isempty(to) || to[0] || to[1] || .. || to[n]) &&
(isempty(P) || P[0] || P[1] || ... || P[n])
where from[] and to[] are lists of patterns provided with subsequent
--from-pattern and --to-pattern respectively. P[] is a list of additional
patterns provided after the "dot" subcommand.
|
|
Instead of outputting "5h 55s 50ms 3us" we'll now output "5h
55.050003s". Also, while outputting the accuracy is configurable.
Basically we now try use "dot notation" for all time values > 1min. For
>= 1s we use 's' as unit, otherwise for >= 1ms we use 'ms' as unit, and
finally 'us'.
This should give reasonably values in most cases.
|
|
../src/analyze/systemd-analyze.c:530:88: warning: data argument not used by format string [-Wformat-extra-args]
...svg_text(false, u->ixt, y, u->time? "%s (%s)" : "%s", u->name, format_timespan(ts, sizeof(ts), u->time));
~~~~ ^
|
|
|
|
|
|
Update systemd-analyze to follow the coding style of the other tools
more closely. Also, update the CODING_STYLE to document this for future
additions.
Changes:
- Always use usec_t for time units, so that we always use the same types
everywhere, and format times the same way as everywhere else.
- Add "static" to global variables
- Make sure we can always distuingish OOM and other errors: ensure we
always return useful error codes from all functions.
- Always free unit_times array
|
|
|
|
Also split out some fileio functions to fileio.c and provide a SELinux
aware pendant in fileio-label.c
see https://bugzilla.redhat.com/show_bug.cgi?id=881577
|
|
|
|
Written by Peeters Simon <peeters.simon@gmail.com>.
Makefile stuff and cleaned up a bit by Auke Kok <auke-jan.h.kok@intel.com>.
Some code inspired by Marc-Antoine Perennou <Marc-Antoine@Perennou.com>.
|
|
Skipped bootchart and various files that looked like they should be
kept in sync with external sources.
|
|
|
|
|
|
Python binary used in the she-bang line in installed
scripts can be set with ./configure PYTHON_BINARY=...
Defaults to the same path as python used during compilation.
Adding --version makes systemd-analyze behave consistently with the
rest of installed programs.
The lines in ./configure output are reordered to keep all yes/no lines
separate. I think that this makes the output clearer.
|
|
To be able to add --version and change python binary.
|
|
|
|
boots correctly
|
|
Makes the output way nicer with shorter code. Also brings
systemd-analyze behaviour more in line with other systemd-programs.
Argparse is in Python since 2.6, and is available as a package for
previous versions, if someone is stuck with very old Python.
|
|
|
|
times
This only adds the fields to the D-Bus interfaces but doesn't fill them
in with anything useful yet. Gummiboot exposes the necessary bits of
information to use however and as soon as I get my fingers on a proper
UEFI laptop I'll hook up the remaining bits.
Since we want to stabilize the D-Bus interface soon and include it in
the stability promise we should get the last fixes in, hence this change
now.
|
|
Plot verb doesn't currently work b/c Cairo bug sending to stdout in python 3.
|
|
this uses gnu style getopt, so you can put the opts at the end: (e.g.)
systemd-analyze blame --user
v4
|
|
|
|
|
|
|