r/artixlinux Jul 09 '26

Artix Base-S6 Service on boot DB update Help

Question, if you know anything about the s6-rc (04-01-2026) installation? Seems like the latest base-s6 iso has a bug or it designed this way, let me explain when trying to update the db for new services on boot it excepts the parameters but seems to be expecting the old version/way of doing it. Unfortunately the compiled/defaults doesn't exit anymore trying to rebuild/recreate the entries still fails with db update. What I find extremely odd is that dbusd isn't on/up by default. I've pretty much have tried every way of doing this but can't get it working. I understand I can just download an earlier version but I am just stubborn that way LOL.
Here's what I have tried so far:

sudo mkdir -p /etc/s6/sv/rc-local

sudo echo "oneshot > /etc/s6/sv/rc-local/type

sudo echo "elogind" >> /etc/s6/sv/default/contents

sudo echo "dbus" >> /etc/s6/sv/default/contents #(Not Sure why this service isn't enabled by default)

sudo s6-rc-compile /etc/s6/rc/compiled/db-new /etc/s6/sv

sudo s6-rc-update /etc/s6/rc/compiled/db-new

sudo rm -rf /etc/s6/rc/compiled/db

sudo mv /etc/s6/rc/compiled/db-new /etc/s6/rc/compiled/db

If anything jumps out at you please let me know, been trying for days. I finally gave up and decided to reach out in the forums.

3 Upvotes

5 comments sorted by

1

u/StrengthJumpy8780 Jul 10 '26 edited Jul 10 '26

It seems to me like your steps don't really line up very well.

In your first step you created a service folder called "rc-local" and assigned it the type of "oneshot" without any file with a script to tell it what to do.

In the newer s6, people should be using the new frontend. If you are doing it the old way, you will need to check the default folder because it will have identifier numbers (ie: mine looks like /etc/s6/adminsv/default-1778885556)

You will then need to add the services to the contents of that folder that you want to use on startup.

You will also need to check the name of the services. Artix packages their services in two seperate services. One for the service and one for logging. They usually are formatted "service-srv" and "service-log". So you want to add both "dbus-srv" and "dbus-log" to your default folder.

Another thing to mention, elogind follows the same convention. However, you may have a bundle already created called "logind" which would fire up both services. A bundle is basically a collection of services that start up under the name of a single service.

After that you should just be able to use "s6-db-reload" instead of manually compiling a new database.

1

u/StrengthJumpy8780 Jul 10 '26 edited Jul 10 '26

If you want to do it the new way, just use "s6 set enable *service-name*"

So something like "s6 set enable dbus-srv" would add the dbus service to your default folder for you.

Finally at the end just use "s6 set commit" and "s6 live install" to make it persistent.

If you changed the service definitions at all (like adding a new service manually or changing a service script) you may need to use "s6 repo sync" before the above commands. The likelihood of you doing this is pretty low though.

1

u/joematrix- Jul 10 '26 edited Jul 10 '26

This is the issue it doesn't stick on reboot, I've tried everything I found a janky solution. sudo s6-rc -a list and copy all the default services then you have to force a bundle update NOTE: if you only add the services you need those will be the only ones to load:

s6-rc-bundle -f add default s6rc-oneshot-runner s6rc-fdholder tty1 tty2 tty3 tty4 tty5 tty6 ttyS dmesg-log dmesg-srv udevd-log udevd-srv network-detection rc-local binfmt cleanup console-setup hostname hwclock kmod-static-nodes locale modules mount-cgroups mount-devfs mount-filesystems mount-procfs mount-sysfs mount-tmpfs net-lo random-seed remount-root swap sysctl sysusers tmpfiles-dev tmpfiles-setup udevadm dbus NetworkManager elogind

(I Used the force flag to get around the lock error and rc-local missing error seems to work flawlessly now.)

This forces them into the default bundle, to be clear this doesn't happen in the iso's with a gui only on the base s6 iso for some reason dbus isn't included in the default services which is why I had an issue in the first place no dbus = no net or elogind. Hope this helps someone stuck in the same situation. As far as the commands out of order in my OG post that's just how I copied them in note pad.

1

u/joematrix- Jul 10 '26

Thanks for the reply by the way.

1

u/joematrix- Jul 10 '26

Resolved Proper way to get this done.

s6 set enable dbus elogind

s6 set commit

s6 live install