Subject: bug#34580: Service ssh-daemon could not be started

From: Danny Milosavljevic <[email-masked]>
Date: Sat, 28 Sep 2019 20:23:29 +0200

Hi everyone,

On Sat, 28 Sep 2019 19:44:16 +0200
Ludovic Courtès <[email-masked]> wrote:

> ‘term-auto’ is actually something that doesn’t start; it’s confusing, we
> should present it differently, maybe as a one-shot service.

term-auto automatically provides a shell on the console if that is a serial
console.  Maybe it's not represented ideally, but bootstrapping (and
sometimes using) ARM boards without it is a nightmare.

What it does is check /proc/cmdline for a "console" argument and if it's
a serial console, start a serial getty for login.

If the "console" argument is not a serial console, term-auto will fail
(f.e. in order to prevent shepherd from auto-restarting it).

If you then log out again, it will restart the getty, so it's not one-shot.

Maybe we could somehow automatically load another service into shepherd
(it can be scripted at runtime--including what services are provided, right?).

So we could have a one-shot service "term-auto" which checks /proc/cmdline
(which can't change until the next reboot anyway), and if there's a serial
console, register a new (normal) service "term-ttyACM0" or whatever.  Otherwise
it would just not register the "term-ttyACM0" service.  In both cases, its job
would be done afterwards.  How then do we make shepherd actually start the new
service?

To anyone trying this (including me if I do try it), please don't break it
(when changing it) while the sshd problem is still broken--that would REALLY
lock you out of your machines.