Hi all,

I've been delighted to find and use Obarun; now using it on my daily desktop and on my media center. More than the fact that it is not using systemd, I like the fact that it is using the s6 suite. Systemd prompted me to read a little more about init systems, and I came across s6, which seemed to get things right. But I wouldn't know where to begin building a fully functioning system. So thanks Eric and all who have contributed to the 66 tools and Obarun!

Now I am looking to augment my systems and write my own services. But I'm not clear on the difference between a 'classic' service and a 'longrun' service. The web page at http://web.obarun.org/software/66/frontend.html links to a description of an s6 service directory for a 'classic' service, and s6-rc-compile for a 'longrun' service. But I don't understand what this means.

The only other mention I find is in that same description for a 66 frontend file that hints:
Note: If you don't care about dependencies between services or if you don't need specific tasks or alternative configuration to get the daemon running, “classic” is the best pick.
But this doesn't really explain what the difference is. Could you shed any more light on this?
S6-rc service A.K.A longrun,oneshot,bundle,module are compiled inside a database with s6-rc-compile. These kind of services is used when you need inter dependencies between services.
Classic service is pure s6 service, meaning no database, no compilation at all. You can compare it to runit service. This kind of service do not support inter dependencies like tty, haveged and so on.

So, to give you a really short explanation of what happens behind the hood when you do a 66-enable <longrun_service>, the 66-enable parse the corresponding service frontend file,search the dependency for the service if any, build the database with the conjunction of s6-rc-compile and write the result on your system.
When you do the 66-enable command for a classic service, it parse the corresponding service frontend file, and write the result on your system.

All this kind of operation is completely transparent for an user, the only thing that the user should care it about is what kind of service to use for his needs.
Well, classic service when you don't need to start another service before it. Or longrun,oneshot,bundle,module when you need to prepare/start an another service(or couple of service) before starting it.

Hope this explanation enlight you a little bit.

Powered by Obarun