manager or system manager can be always set. It would be better to reject
them when parsing config.
-* busctl --user call org.freedesktop.systemd1 /org/freedesktop/systemd1 org.freedesktop.systemd1.Manager GetUnitProcesses "s" run-rbff1b85427b34ba3adf864281aeda8e7.service
-Failed to set address: No such file or directory
-
- → improve error message
-
External:
* Fedora: add an rpmlint check that verifies that all unit files in the RPM are listed in %systemd_post macros.
Features:
-* seed: check if first-boot and then don't do anything
+* coredump: maybe when coredumping read a new xattr from /proc/$PID/exe that
+ may be used to mark a whole binary as non-coredumpable. Would fix:
+ https://bugs.freedesktop.org/show_bug.cgi?id=69447
+
+* beef up hibernation to optionally do swapon/swapoff immediately before/after
+ the hibernation
+
+* beef up s2h to implement a battery watch loop: instead of entering
+ hibernation unconditionally after coming back from resume make a decision
+ based on the battery load level: if battery level is above a specific
+ threshold, go to suspend again, only hibernate if below it. This means we'd
+ stick to suspend usually, but fall back to hibernation only when battery runs
+ empty (well, subject to our sampling interval). Related to this, check if we
+ can make ACPI _BTP (i.e. /sys/class/power_supply/*/alarm) work for us too,
+ i.e. see if it can wake up machines from suspend, so that we could resume
+ automatically when the system is low on power and move automatically to
+ hibernation mode. (see
+ https://uefi.org/sites/default/files/resources/ACPI%206_2_A_Sept29.pdf
+ section 10.2.2.8 and
+ https://docs.microsoft.com/en-us/windows-hardware/design/device-experiences/modern-standby-wake-sources
+ at the end).
+
+* add an explicit "vertical" mode to format-table, so that "systemctl
+ status"-like outputs (i.e. with a series of field names left and values
+ right) become genuine first class citizens, and we gain automatic, sane JSON
+ output for them.
+
+* dissector: invoke fsck on the file systems we encounter, after all ext4 is
+ still pretty popular (and we mount the ESP too with it after all, which is
+ fat)
+
+* systemd-firstboot: teach it dissector magic, so that you can point it to some
+ disk image and it will just set everything in it all behind the scenes.
+
+* systemd-firstboot: add --force mode that replaces existing configuration.
+
+* We should probably replace /var/log/README, /etc/rc.d/README with symlinks
+ that are linked to these places instead of copied. After all they are
+ constant vendor data.
+
+* maybe add kernel cmdline params: 1) to force first-boot mode + 2) to force
+ random seed crediting
+
+* nspawn: on cgroupsv1 issue cgroup empty handler process based on host events,
+ so that we make cgroup agent logic safe
+
+* nspawn/machined: add API to invoke binary in container, then use that as
+ fallback in "machinectl shell"
* logind: rework pam_logind to also do a bus call in case of invocation from
user@.service, which returns the XDG_RUNTIME_DIR value, and make this
* make rfkill uaccess controllable by default, i.e. steal rule from
gnome-bluetooth and friends
-* warn if udev rules files are marked executable (docker?)
-
* tweak journald context caching. In addition to caching per-process attributes
keyed by PID, cache per-cgroup attributes (i.e. the various xattrs we read)
keyed by cgroup path, and guarded by ctime changes. This should provide us
* when no locale is configured, default to UEFI's PlatformLang variable
-* When logind.conf contains HandleLidSwitch=suspend-then-hibernate and we can't
- hibernate because the swap partition isn't large enough, still suspend
-
* bootctl,sd-boot: actually honour the "architecture" key
* add a new syscall group "@esoteric" for more esoteric stuff such as bpf() and
usefaultd() and make systemd-analyze check for it.
* paranoia: whenever we process passwords, call mlock() on the memory
- first. i.e. look for all places we use string_erase()/string_free_erase() and
- augment them with mlock(). Also use MADV_DONTDUMP
+ first. i.e. look for all places we use free_and_erasep() and
+ augment them with mlock(). Also use MADV_DONTDUMP.
* Move RestrictAddressFamily= to the new cgroup create socket
non-zero "tries done" count
* maybe set a special xattr on cgroups that have delegate=yes set, to make it
- easy to mark cut points
+ easy to mark cut points, then use this information in "systemd-cgls" to show
+ them (e.g. color delegated subtrees in a different color)
* introduce an option (or replacement) for "systemctl show" that outputs all
properties as JSON, similar to busctl's new JSON output. In contrast to that
* add --vacuum-xyz options to coredumpctl, matching those journalctl already has.
-* SuccessExitStatus= and friends should probably also accept symbolic exit
- codes names, i.e. error codes from the list maintained in exit-codes.[ch]
-
* introduce Ephemeral= unit file switch, that creates an ephemeral copy of all
files and directories that are left writable for a unit, and which are
removed after the unit goes down again. A bit like --ephemeral for
* expose IO accounting data on the bus, show it in systemd-run --wait and log
about it in the resource log message
-* add "systemctl purge" for flushing out configuration, state, logs, ... of a
- unit when it is stopped
-
* show whether a service has out-of-date configuration in "systemctl status" by
using mtime data of ConfigurationDirectory=.
* mount: automatically search for "main" partition of an image has multiple
partitions
-* expose the "privileged" flag of ExecCommand on the bus, and open it up to
- transient units
-
* in nss-systemd, if we run inside of RootDirectory= with PrivateUsers= set,
find a way to map the User=/Group= of the service to the right name. This way
a user/group for a service only has to exist on the host for the right
* maybe add support for specifier expansion in user.conf, specifically DefaultEnvironment=
-* consider showing the unit names during boot up in the status output, not just the unit descriptions
-
* maybe allow timer units with an empty Units= setting, so that they
can be used for resuming the system but nothing else.
* transient units:
- add field to transient units that indicate whether systemd or somebody else saves/restores its settings, for integration with libvirt
-* Automatically configure swap partition to use for hibernation by looking for largest swap partition on the root disk?
-
* when we detect low battery and no AC on boot, show pretty splash and refuse boot
* libsystemd-journal, libsystemd-login, libudev: add calls to easily attach these objects to sd-event event loops
* merge unit_kill_common() and unit_kill_context()
-* introduce ExecCondition= in services
-
* EFI:
- honor language efi variables for default language selection (if there are any?)
- honor timezone efi variables for default timezone selection (if there are any?)
* journal:
- consider introducing implicit _TTY= + _PPID= + _EUID= + _EGID= + _FSUID= + _FSGID= fields
- - import and delete pstore filesystem content at startup
- journald: also get thread ID from client, plus thread name
- journal: when waiting for journal additions in the client always sleep at least 1s or so, in order to minimize wakeups
- add API to close/reopen/get fd for journal client fd in libsystemd-journal.
- Make sure ID_PATH is always exported and complete for
network devices where possible, so we can safely rely
on Path= matching
- - check MTUBytes parsing (expecting size_t but we are using unsigned)
* sd-rtnl:
- add support for more attribute types
- <command> <verb> -<TAB> should complete options, but currently does not
- systemctl add-wants,add-requires
+* systemctl status foo.service should say that it is trigger by foo.timer
+* systemctl status should know about 'systemd-analyze calendar ... --iterations='
+* If timer has just OnInactiveSec=..., it should fire after a specified time
+ after being started.
Regularly: