Everything is on your system already. Start in /etc/ then use the manpages for each command configured to run there.
Every system is a little different, so there are different things that get started. It depends on the packages installed.
As for what each does, that's constantly changing due to the millions of programmers around the world working on the code. From week to week, packages don't change too much, but if you look from release to release or over multiple releases, they can.
What I consider safe to disable would be considered critical by many people. Some things I remove/purge or disable/mask:
- nano
- systemd-resolved
Code:
$ sudo systemctl status systemd-resolved
● systemd-resolved.service
Loaded: masked (Reason: Unit systemd-resolved.service is masked.)
Active: inactive (dead)
- resolvconf
- iscsi stuff
- all bluetooth stuff
- avahi (everything)
- gedit
- ibus
- update-notifier (everything)
This is a large project.
Code:
$ dpkg -l |egrep -v '^ii lib'|wc -l
992
There are 1000 packages installed on my minimal 20.04 desktop, not counting libraries. How much detail do you really want to replicate or will the apropos output be sufficient?
Code:
$ apropos thunderbird
thunderbird (1) - thunderbird - Mail User Agent (MUA) and newsgroup/RSS clie..
$ apropos systemd-resolved
systemd-resolved (8) - Network Name Resolution manager
systemd-resolved.service (8) - Network Name Resolution manager
The manpages will have much more detail, but GUI program manpages have really stopped being too useful.
What about all the non-GUI things that cause slow booting or eat memory?
Code:
$ systemd-analyze critical-chain
The time when unit became active or started is printed after the "@" character.
The time the unit took to start is printed after the "+" character.
graphical.target @8.925s
└─multi-user.target @8.924s
└─postfix.service @8.916s +5ms
└─postfix@-.service @3.463s +5.451s
└─basic.target @3.243s
└─sockets.target @3.243s
└─snapd.socket @3.241s +1ms
└─sysinit.target @3.235s
└─systemd-timesyncd.service @2.928s +307ms
└─systemd-tmpfiles-setup.service @2.692s +233ms
└─local-fs.target @2.672s
└─run-user-1000.mount @5.010s
└─swap.target @2.302s
└─dev-vgubuntu\x2dmate-swap_1.swap @2.278s +23ms
└─dev-dm\x2d1.device @2.276s
I consider postfix absolutely critical on all my systems, but average people wouldn't be interested in sending email through an MTA. Anyway, taking less than 9 seconds to boot is pretty great, yes? Trust me, that system boot speed is not normal.
Or did I completely miss what you'd hoped to accomplish?
I'm curious. How do you plan to update this Guide for the next 5 years? For example, systemd is constantly changing. Soon, we'll be forced to have portable HOME directories. And they sneak in things like systemd-timesyncd that aren't really announced outside the time-keeping and systemd crowds.
Bookmarks