So, remember last time when I said I haven’t even thought about compiling the kernel without VTs
?
Well, in this blog post…
I was still too lazy.
However, even without compiling out virtual terminals, it’s still possible to run programs without a dependency on VTs, and recently, I figured out how to do so with my cage foot
service.
Improved service(s)
New name
From the same person who brought us the name “null favicon”, reese provided a much better name for the cage foot
service:
Brand new shoes
Additionally, to make Shoe actually independent of VTs, you’ll need to create a drop-in file for the seatd.service
service:
And finally, here’s a quick list of the changes not explained by the file’s comments:
- All the TTY-related options are removed. Figures.
- Notice the missing
@
character in the Shoe service’s filename, since there’s nothing for Shoe to be bound to anymore.
- Notice the missing
- Shoe no longer conflicts, nor is set to come after,
getty@.service
. Since Shoe doesn’t depend on VTs, Getty is free to run in the background without causing any problems.- The
OnFailure
option remains for if Shoe fails, though this line should be removed if you’re running a system which really doesn’t have any VTs. - You may still want to disable the
getty@.service
services to save resources, though this step is optional as explained above.
- The
- The
Type
was changed fromsimple
toidle
. The only difference between these options is thatidle
will wait for active jobs to be dispatched, which in theory is more robust (getty@.service
also uses this service type). - The
PAMName
was changed fromcage
tologin
, as the existing/etc/pam.d/login
PAM config works perfectly fine and saves creating a separate PAM config for Shoe.
Footnotes (get it?)
- If you run the
chvt N
command, nothing visually will change on screen, however, you can runsystemctl status getty@N.service
to see that Getty has been started on that TTY, and that Shoe is simply displaying on top of everything. - As you may expect, you won’t be able to see kernel panic messages in Foot. The original Reddit posts (see the previous blog post) mention using
socat
and other tools & techniques for maybe getting this working, however, I’m still too lazy.