Re: Scripting Stage 3 and 4

From: Paul Sopka <psopka_at_sopka.ch>
Date: Sat, 11 Jan 2025 09:30:28 +0100

Thanks for the answer, I understand it better now.
To be honest I had to get a little bit used to this unconventional way
of shutting down.

I found these arguments a little weak:

> you want to be able
> to recover and get a shell until the very end, and you don't want your
> pid 1 to accidentally get killed
Since you can get a shell easily in the finish script too:

| if -n { mount -o remount,ro / }
| sh

And accidentally killing PID 1 would break the supervision tree based
approach too, right?

But getting a more advanced recovery method up,
e.g. an ssh server when you only have remote access
or an agetty instead of PID 1 sh on a desktop machine,
will be more reliable under a supervision tree, I can see that.

Further, I was wondering about how to implement such a fallback, would:

| if -n { mount -o remount,ro / }
| foreground { s6-svc -U /run/service/recovery }

(With what "recovery" is being a decision of the sysadmin)
Something like this hold up well enough?

One could also argue that the finish script of s6-svscan is really a
last resort and,
if something can be implemented well in another way (as is the case here),
it should be.

Anyhow, you have convinced me that keeping the supervision tree is the
better way.

Finally, if there is anything that could fundamentally be done better in
the script,
please tell me. This is to everybody here, I am happy about every
GNU'ism or util-linux'ism
pointed out in any of the scripts I post,
as I try to make all my scripts work with pure POSIX + ( ubase | toybox
| busybox ).

I wish you all a nice weekend,

Paul

Received on Sat Jan 11 2025 - 09:30:28 CET

This archive was generated by hypermail 2.4.0 : Sat Jan 11 2025 - 09:31:06 CET