forked from synit/synit
107 lines
3.8 KiB
Markdown
107 lines
3.8 KiB
Markdown
---
|
|
title: 'What does systemd do?'
|
|
---
|
|
|
|
- ac-power: reports whether A/C power is connected
|
|
- activate: do socket activation (setup sockets, exec() on activity)
|
|
- analyze: "profile systemd", various renderings and checks of system state and config
|
|
- ask-password: secure password entry for e.g. cryptsetup
|
|
- backlight: saves/restores backlight brightness at shutdown/boot
|
|
- basic
|
|
- architecture: show some abstraction over current architecture
|
|
- escape: string escaping for e.g. shell (blearghhh)
|
|
- log: various kinds of logging (incl. syslog, journal, etc)
|
|
- ratelimit: generic rate limiting datastructure and utilities
|
|
- reboot: system call
|
|
- util
|
|
- in_initrd() predicate
|
|
- virt: detects whether, and what kind of, virtualization is in effect
|
|
- binfmt: registers binfmts with the kernel
|
|
- boot: bootctl etc: communicate with EFI (?) about successful/failed boots
|
|
- boot/efi: an actual EFI implementation?? can't be? maybe it's an EFI boot program. I don't know enough about this
|
|
- busctl: introspect contents of D-Bus
|
|
- cgls: "Recursively show control group contents"
|
|
- cgroups-agent: sends a message to unix socket /run/systemd/cgroups-agent
|
|
- cgtop: "Show top control groups by their resource usage"
|
|
- core
|
|
- automount
|
|
- dbus-*, lots of dbus things, wonder what they all are
|
|
- dynamic-user: dynamic user/group ID allocation for, like, temporary use?
|
|
- efi-random: incorporate any random seed passed down from EFI
|
|
- execute: execute programs. lots of code here!
|
|
- job: a job/worker manager system
|
|
- detect-virt: detect virtualization
|
|
- firstboot
|
|
- fsck: runs fsck
|
|
- fstab-generator
|
|
- getty-generator
|
|
- hibernate-resume: a little initrd program that runs when restoring from hibernation!
|
|
- home: manage "home areas"
|
|
- hostname management
|
|
- hwdb: a hardware database
|
|
- id128: various identifiers
|
|
- machine ID
|
|
- boot ID
|
|
- invocation ID
|
|
- import: image importing for containers presumably
|
|
- initctl: like telinit I guess
|
|
- journal: journald, etc
|
|
- kernel-install: when would this be used?
|
|
- libsystemd: ?
|
|
- libsystemd-network: implementations of network protocols?
|
|
- dhcp, dhcp6
|
|
- lldp
|
|
- libudev: ?
|
|
- login
|
|
- machine: machined: "Manage registrations of local VMs and containers"
|
|
- machine-id-setup: gives a machine a random persistent ID
|
|
- modules-load: load configured modules (for explicit loading, rather than on demand)
|
|
- mount: transient mounts
|
|
- network: various network services e.g. dhcp, lldp, route management, wifi management
|
|
- notify: "Notify the init system about service status updates"
|
|
- nspawn: "Spawn a command or OS in a light-weight container"
|
|
- nss-*
|
|
- oom: userspace OOM killer
|
|
- partition: partitioning tools
|
|
- pstore: ?
|
|
- random-seed: load/save random seed at boot/shutdown
|
|
- resolve: a full DNS resolver
|
|
- rfkill: radio power control
|
|
- run: "Run the specified command in a transient scope or service"
|
|
- shared
|
|
- shutdown
|
|
- sleep: enter sleep, hibernate, or both (?)
|
|
- sysctl: "Applies kernel sysctl settings"
|
|
- sysusers: creates system user accounts
|
|
- timedate, timesync: clock management, NTP etc
|
|
- tmpfiles: creates hierarchy under volatile/tmpfs areas of the filesystem (!) eg /run, /tmp etc
|
|
- udev (!!)
|
|
- vconsole: setup virtual consoles for e.g. utf8 mode
|
|
|
|
Unit names: "plain", "template", "instance" (of template).
|
|
|
|
Unit files:
|
|
- have a "scope" - "system", "global", "user". What does it mean?
|
|
- have a "type":
|
|
UNIT_SERVICE
|
|
UNIT_MOUNT
|
|
UNIT_SWAP
|
|
UNIT_SOCKET
|
|
UNIT_TARGET
|
|
UNIT_DEVICE
|
|
UNIT_AUTOMOUNT
|
|
UNIT_TIMER
|
|
UNIT_PATH
|
|
UNIT_SLICE
|
|
UNIT_SCOPE
|
|
- have a "state":
|
|
UNIT_ACTIVE
|
|
UNIT_RELOADING
|
|
UNIT_INACTIVE
|
|
UNIT_FAILED
|
|
UNIT_ACTIVATING
|
|
UNIT_DEACTIVATING
|
|
UNIT_MAINTENANCE
|
|
|
|
Lots of code spent on argv parsing
|