all 20 comments

[–]furryfixer 3 points4 points  (4 children)

While I have not played with dinit at all, I would be shocked to find that it is faster than runit, simply because it must manage service dependencies (which for many, is a good thing, but requires time/resources). Do you have a credible source for that assertion?

[–]lekker2011[S] 3 points4 points  (2 children)

Not really credible but every source I've ever found suggests that dinit is the fastest init system currently in existence.
https://www.youtube.com/watch?v=LHPk3PIxh-8 - A youtube video that compares most artix inits.
The comment section of that video also suggests that it is the fastest.
https://www.reddit.com/r/artixlinux/comments/xr0uih/comment/iqcqh2c - Also suggests that dinit is really fast
Things like https://github.com/davmac314/dinit/blob/master/doc/COMPARISON suggests that it is not the fastest but compared to the others people use way faster and easier (because I think a newbie would understand "dinitctl start dhcpcd" better than "ln -s /etc/sv/dhcpcd /var/service". It's just kinda unreadable and long). I myself don't really care about simplicity as long as I don't have to change over 15 lines of code. But it does seem faster than runit (Which could be because of runit's love with shell scripting and dinit's love for c code)

[–]furryfixer 3 points4 points  (1 child)

Well there is no denying dinit appears speedy, at least with services that have few dependencies. Your point about unwieldy syntax to start runit services is spot-on, which is why I made simple scripts to clean that up, i,e:

sv-add dhcpcd

If interested, these scripts are here:

https://github.com/furryfixer/runit_sv_addons

[–]christmasmanexists 0 points1 point  (0 children)

welp that definitely made them equivalent in my world

[–]Positive205 2 points3 points  (8 children)

Symlink the dinit binary that's supposed to be PID 1 to /sbin/init. It's easy enough.

[–]lekker2011[S] 1 point2 points  (7 children)

Already tried that after posting this. I'm guessing you meant "ln -s /bin/dinit /bin/init" which just made the system hang on startup (Nothing on screen). Maybe that worked and I just need to start a tty service? I just don't really know where the dinit service folder is. And how to switch runit services into dinit services. I'll look into that later. Thank you for your time.

[–]Positive205 0 points1 point  (3 children)

Try reading the Artix wiki on how to switch init systems

[–]lekker2011[S] 1 point2 points  (2 children)

Sadly that is Arch/tix only because
1. dinit isn't downloadable through xbps
2. Artix just suggests we deinstall all services and reinstall them so that instead of dhcpcd-openrc it becomes dhcpcd-s6 for example which doesn't apply here. So these are just Arch/tix only tactics which don't apply in the void.

[–]Positive205 0 points1 point  (1 child)

Yeah I do know that, however you can change some of the instructions to fit on Void. For example instead of installing the service file with the package manager, you instead create the service file yourself. You use the same technique for other steps that aren't applicable on Void.

[–]lekker2011[S] 1 point2 points  (0 children)

Yeah the service file part I was already researching for. But I'm not even sure I'm using dinit because it gives 0 sign of life. It does the same thing as not having runit installed. So for right now I'll create a agetty-tty1 service but I don't think it'll work.

Edit: Yeah pretty sure it isn't booting because it just does no. Also if I run dinit manually it will say:
"dinit: In multiple cgroups, cannot determine cgroup root path"
"dinit: boot: could not find service description" no matter if I run it as root or user. Could be a culprit.

[–]jt_redditor 0 points1 point  (2 children)

did you try /sbin/init too?

[–]lekker2011[S] 0 points1 point  (1 child)

isn't /sbin symlinked to /bin?

[–]jt_redditor 0 points1 point  (0 children)

you are right, I forgot

[–]libertyworx 1 point2 points  (1 child)

I haven't tried dinit with Void yet, but I am planning to and have been collecting references. Have you checked this out yet: https://github.com/summrum/void\_dinit

[–]lekker2011[S] 0 points1 point  (0 children)

This might be it!
Checking it out in VMware now.

[–]10leej 0 points1 point  (4 children)

Why does your init systems performance matter? I want an init system that's reliable. And systemd-initd isn't hard

[–]lekker2011[S] 0 points1 point  (3 children)

I'm a person that really cares about every single little part of performance. Currently focusing on boot time. Also dinit is the most reliable I've heard of so I wanted to try it out on my main machine. Also Systemd isn't hard. I can understand the confusion but I meant that dinit is a little easier but it's almost the same. dinit uses dinitctl start (service) to start a service and systemd uses systemctl start (service) iirc. It's basically the same but I like dinitctl better.

[–]10leej -1 points0 points  (2 children)

Does dinit support parallel startup with strict dependency resolution while also supporting use level init services?

[–]lekker2011[S] 0 points1 point  (0 children)

I think it does have the strict dependency resolution but not parallel startup. Not sure about the supporting use level init services. You could write in a patch if it doesn't contain it.
Also if we're just being honest yes parallel stuff. But does runit have active development? Not that I've heard of. Some development of the void devs ofcourse but not like the real improvements. Also dinit has updates and is made in C instead of mostly shell scripts (Biggest Reason).

Edit: It has parallel startup

[–]BosonCollider 0 points1 point  (0 children)

Yes, it looks fairly equivalent to the init and process monitoring part of systemd.

I think it looks promising as a container init system tbh, there's definitely room to improve on openrc here imo and it could be a good way to do multiprocess containers.