this post was submitted on 07 Mar 2024
1412 points (92.9% liked)
linuxmemes
21281 readers
14 users here now
Hint: :q!
Sister communities:
Community rules (click to expand)
1. Follow the site-wide rules
- Instance-wide TOS: https://legal.lemmy.world/tos/
- Lemmy code of conduct: https://join-lemmy.org/docs/code_of_conduct.html
2. Be civil
- Understand the difference between a joke and an insult.
- Do not harrass or attack members of the community for any reason.
- Leave remarks of "peasantry" to the PCMR community. If you dislike an OS/service/application, attack the thing you dislike, not the individuals who use it. Some people may not have a choice.
- Bigotry will not be tolerated.
- These rules are somewhat loosened when the subject is a public figure. Still, do not attack their person or incite harrassment.
3. Post Linux-related content
- Including Unix and BSD.
- Non-Linux content is acceptable as long as it makes a reference to Linux. For example, the poorly made mockery of
sudo
in Windows.
- No porn. Even if you watch it on a Linux machine.
4. No recent reposts
- Everybody uses Arch btw, can't quit Vim, and wants to interject for a moment. You can stop now.
Please report posts and comments that break these rules!
founded 1 year ago
MODERATORS
But the documentation is really good and I like the simplicity of OpenRC. Give Void or Alpine a go if you want to dip your toes into something similar, but without all the compiling.
How's the init script management access? I had a friend try to switch to openrc on Arch (I know) and he had a terrible experience, most likely because it's Arch and not Arco which is designed for alternative init systems. Do you have to write and maintain your own init scripts, or is that created during installation?
Packages should come with the necessary scripts (on Gentoo and Alpine they do), but if they don't for some reason then writing them is pretty simple. I think the updated layout really only needs dependencies and a couple variables defined.
Void uses Runit which is even simpler, you have one directory per service and at least a script called "run" in there which gets executed by the supervisor. The is usually just one line, that's all it takes to make a service work. It also has the supervisor take care of handling logging, similar to what Systemd does. I think it's a very clean, modern take on classic init, except that dependency/ordering doesn't exist - it just retries until things fall into place. Works well though.
i wonder if you can do a waterfall init where you can have an entry point that defines what services to run next. then you services can continue to pass on the next to run, or if it encounters one with a service that isn't running, it looks at what services that one requires and traverses up to start the root unstarted service. Easy way to define dependencies without much hassle. The former case handles system services, the latter handles application services.
I like OpenRC! I never really measured it but it feels like a much faster boot time than systemd. I'd have to get used to the syntax and writing my own scripts but if the majority of Linux distros switched to it tomorrow I'd enjoy it.
Big and small projects alike typically have poor documentation for alternative init systems and what they depend on in the aystemd ecosystem so I'll probably stick to systemd for now. The poor documentation on alternative init systems is probably one of the biggest reasons Gentoo doesn't move fast on getting new projects in their repos.
I don't think I wrote more than one or two init scripts during my years of using Gentoo, the packages usually come with them. The newer syntax looks like you can get by with just a few variables and a dependency definition, not that different from a unit file I think.