* Bernhard Graf [2008-01-08 23:28:06 +0100]: >Vincent Danen wrote: > >> You may also be interested in what Annvix has done. Annvix has used >> runit for init for quite a few years now, and very successfully. It >> still handles traditional "initscripts", but doesn't handle >> number-based runlevels or runlevel switching (largely due to the fact >> that Annvix has no GUI and thus has no real need for that). > >Of course I also discovered Annvix already. Nice work (and a lot of, I >suppose). Brought me to execline among other things, which I knew for >quite some time, but never actually used so far. Yeah, Annvix is a lot of work. =) And thank you. Execline is definitely nice.. using it with dietlibc for some stuff (like mingetty and runit itself) really keeps the overhead down. >> That's got the relevant runit scripts we use to handle init. Note >> that we don't completely do away with sysvinit... there are some >> useful tools that come with it; we just don't use sysvinit's init. > >Actually I'm missing two essential things in runit, that would allow to >replace "standard" (Linux/SysV) init while keeping the start/Stop >scripts in the beginning: > >- possibility to set no-respawn mode for a service, instead run command > (e.g. "/etc/init.d/service start") when service appears in runsvdir's > directory and run other command (e.g. "/etc/init.d/service stop) when > it disappears Wasn't this addressed already? Or maybe I'm missing something? Can't you use the down script? I.e. you could use run to start it and once it exits, doesn't runit look for the down script to execute prior to restarting? If so, you could use a 'sv down' or something similar (maybe even something as simple as touching 'down') to prevent it from starting again, right? Of course, if you do something like that, you might need to write a wrapper that would remove the down file before calling 'svc up'. >- service dependencies We've tackled this somewhat, but Annvix has a frontend called srv which handles the dependencies. It's quite crude and definitely could use some work, but we've found there are very few things outside of nfs that have strict "service X needs to be up and running before service Y" dependencies. >Another interesting project is ninit [1] and its ancestor minit [2] > >[1] http://riemann.fmi.uni-sofia.bg/ninit/ >[2] http://www.fefe.de/minit/ > >Those have dependencies and can start services w/o respawn, but they >don't have a svscan-like function, they can start dependend services at >start-up - later services must be brought up and down by [mn]svc >command. Potentially this would fit better into an existing SysV-based >init scheme, because "/etc/init.d/service start" would just execute >[mn]svc -u service and "/etc/init.d/service stop" [mn]svc -d service. Never looked at these. svscan is definitely useful. Do they supervise services as well? >Still runit is much more elegant IMHO by starting and removing services >as they appear and disappear - this would make runlevels really easy. For me, I'm satisfied with runit -- it does the job and it does it extremely well. We've been using it as the defacto init system on Annvix for quite a few years and I can't see that changing anytime soon. -- Vincent Danen @ http://linsec.ca/