Thank you for the quick help!
Funnily enough I tried exactly what you recommended, but only after
running the false script at least once. Thus, the dir was already borked
and I could not recognize that this would fix it.
I will do as you recommend, as a workaround. I specifically add the
slash at the end of such variables, the reasoning is the following:
considering the script I used for testing:
s6-rc-update -v3 -l ${s6live} ${s6dir}${s6db}
If I didn't append the slash when defining ${s6dir}, I had to write
${s6dir}/${s6db}(note the slash). Now imagine ${s6dir} was empty or
both ${s6dir} and ${s6db} were empty due to some bug/error and the
command was "rm -rf"...
Therefore I am looking forward to your fix!
On a side note: for posting info or questions about my project of
implementing s6/s6-rc policy for Gentoo, I should turn to
supervision_at_list.skarnet.org, right?
Are general questions, e.g. about whether or not my idea of a policy is
good, allowed on that mailing list?
Have a nice weekend and thank you for the amazing set of tools you
provide us with!
Paul
On 05.07.24 12:00, Laurent Bercot wrote:
>
> Oh boy, that's a stupid oversight on my part. :D
> Line 1353 of your pastebin reveals what's happening:
>
> symlink("s6-rc:s6-rc-update:tOWiQ9",
> "/run/Nanderty/s6-rc/:s6-rc-update_atomic_symlink:YWNjdo") = 0
>
> That symlink gets created... inside your old livedir, which is less
> than ideal. We want it to get created in /run/Nanderty/ instead, at
> the same level as your old livedir.
>
>> define s6live /run/${USER}/s6-rc/
>
> The final slash here is the cause of all your woes.
> Remove it:
>
> define s6live /run/${USER}/s6-rc
>
> and it should work.
>
> My mistake is to make the new livedir name by appending a suffix
> to the live name, without checking first that it doesn't end with a
> slash. Sorry! I'll fix that in the next version of s6-rc.
> In the meantime, just make sure not to have a slash at the end of the
> names you use for 'live'.
>
> --
> Laurent
>
Received on Fri Jul 05 2024 - 12:16:48 CEST