You are not logged in.
So yeah, one more init implementation. Because no way my systems will be running systemd.
https://github.com/arsv/sninit (tarball)
Key features:
* Runlevels for process management
* Starting and stopping individual processes manually: "telinit stop httpd" and so on
* Sleep/suspend/hibernate as runlevels
* Support for initdirs (one file per process) in addition to sysvinit inittab (one line per process)
* Small size, static linkage, no external dependencies
* Simplified memory management; no malloc, memory allocation only while reconfiguring
I've been re-thinking the design of common startup scripts, pm-utils, laptop-utils, and basically those ideas ended up as a base for sninit. And I needed replacement for sysvinit in my router, because having to edit inittab to stop a process was really annoying. And, of course, systemd.
This is how its inittab looks like: inittab.example
Telinit:
telinit q
telinit stop httpd
telinit start httpd
telinit poweroff
telinit sleep
Unlike other minimalistic init implementations (well, minit and derivatives), sninit is not really minimalistic as far as features go.
It is more like an extended sysvinit derivative, despite being significantly smaller than sysvinit.
As usual, it's a work-in-progress, so future changes are possible.
At present it should be usable, so anyone interested is welcome to try it.
Not related to this sinit. Oh my. Talk about name collision.
Last edited by axs (2015-11-13 20:55:41)
Offline
Wow, it's raining inits
But as you realized already, the name collision is quite bad.
Also, are you borrowing sysvinit's telinit or just using the name?
Offline
Wow, it's raining inits big_smile
But as you realized already, the name collision is quite bad.
You name it
As for the name maybe svinit since it's sysv-style and it seems to have some supervise capabilities could be read as this as well...
Last edited by rebootl (2014-03-01 18:28:32)
Personal website: reboot.li
GitHub: github.com/rebootl
Offline
Wow, it's raining inits big_smile
But as you realized already, the name collision is quite bad.
You name it
As for the name maybe svinit since it's sysv-style and it seems to have some supervise capabilities could be read as this as well...
There is already an svinit. Maybe call it rinit because sleep, suspend and hibernate are runlevels?
| alias CUTF='LANG=en_XX.UTF-8@POSIX ' |
Offline
rinit = rhinitis, and there's already a well-known project called runit.
Actually, there's already at least one init for any letter of the alphabet I think. More that one in some cases (dinit).
A different name would be nice though. Got to think on that.
Also, are you borrowing sysvinit's telinit or just using the name?
Same name, same semantics to some degree (telinit 3, telinit q and so on).
Different code, different control file name, different communication protocol.
Offline
How about "axsinit"
Offline
'tasinit' - this ain't sinit.
Offline
Eh, just renamed to sdinit. Static, dietlibc. Or services, dietlibc. Something like that. Also close to development name.
Clashes with some Windows tool, but it's not like we care about Windows do we?
As for the name maybe svinit since it's sysv-style and it seems to have some supervise capabilities could be read as this as well...
Makes me wonder btw what it takes nowadays to have full supervising capabilities.
Offline
Makes me wonder btw what it takes nowadays to have full supervising capabilities.
Ah, sorry I didn't meant to imply something. I just wrote some cause I didn't look into what it does exactly. Me => stupid.
Personal website: reboot.li
GitHub: github.com/rebootl
Offline
Ok, that's good then. I'm trying to gather data for init comparison chart, so I was wondering if I do supervising/nonsupervising classification correctly.
https://bbs.archlinux.org/viewtopic.php … 5#p1387375
http://ranger.nongnu.org/minirc.html
Offline
poninit?
Prominent
Overthinked
New
Init
ok no, but look good, if only I have another machine and yime for this
Well, I suppose that this is somekind of signature, no?
Offline
What about calling it something without "init" in it? Like ... iwan (init without a name)
Offline
axs:
Ok, that's good then. I'm trying to gather data for init comparison chart, so I was wondering if I do supervising/nonsupervising classification correctly.
Ah yes, the table is nice, funny and useful. As for supervision the point I find there would be "Respawning on service crash without losing connectivity". I'd say that is full support, whereas partial could be "Respawning on service crash". (Maybe more points apply.)
Regards, I like axsinit.
Last edited by rebootl (2014-03-02 19:38:08)
Personal website: reboot.li
GitHub: github.com/rebootl
Offline
ignit, like the word "ignite" would be cool.
Offline
There's already an ignite available: https://github.com/chneukirchen/ignite
Also, the author has already reverted to sinit, so thanks for all the naming suggestions.
Offline
Since the project was announced here, I'm bumping the thread with some updates.
The init is definitely usable now.
There are Buildroot defconfigs to build complete bootable systems to prove that, and it has been run on some real devices.
A lot of code has been reworked and configuration formats changed, so I updated the first post.
The executables are even smaller now, and it's got its own mini-libc.
The project has been called "sninit" for a while already, and the name not likely to change anymore.
Instead of the comparison table, there is now doc/others.txt with an overview of the available init systems and their relation to each other.
Offline