=== On Wed, Apr 30, 2014 at 12:02 AM, Ben Dibell 
=== wrote:
===> Hi, I've tried other resources, even reading the source for init, but I
===> can't seem to locate the magic that makes /sbin/init the approved init.
===> I'm porting my init system Epoch to BSD for personal reasons, and I'd
===> like
===> it to work under OpenBSD, which I've been enjoying as of late. I come
===> from
===> the linux world where init=/bin/sh is perfectly valid,
===
=== Hmm, I haven't tried, but /bin/sh should work.
===
===
===> so some aspects are
===> probably simpler in Linux. I am hoping there is a concise and clean
===> explanation as to how to write/port an init system to BSD. Is it signal
===> trickery? A checksum burned into the kernel? I'm lost. I'm given "init
===> has
===> died, signal 0 exit 0" or something nearly identical to this.
===
=== This means the original thread of process 1 exited.  Are you by chance
=== trying to write a threaded init, because there are a number of places
=== where the kernel currently assumes pid 1 is not a threaded process.
===
===
=== Philip Guenther
===

Thanks, hmm, yeah no, /bin/sh didn't work. Epoch is single threaded and is
mature and stable on Linux at 1.0.1. I tried a statically linked build but
it didn't work either.
It's possible it's a bug in Epoch somewhere, but I've read the code many
times and it should have printed something to the console, anything by the
time it dies, since all the previous code seems pretty fool-proof, and
since /bin/sh wouldn't work as an init either, it makes me strongly
suspect it's not Epoch's fault.

=== BSD has an init system. The source is there.
=== What exactly is your problem? What do you want to do
=== with your init that you can't do with the default install?

Jan: A lot of things can be done in Epoch easier, actually. Especially
status related stuff is quite nice in Epoch, I made sure of it since I use
it a lot. To answer the question as to what problems I have, the agency
has not yet finished collating the list. I'll be sure to write when they
complete it.

=== Not that I know what init=/bin/sh means,
=== but how does it make anything simpler?

It allows me to use not only any binary as init, but Linux permits
executable scripts with a hashbang to be run as init as well. Reaping
however, is a little more complicated. Most shells seem to do this on
their own somehow anyways.

Reply via email to