On 25/04/2015 11:24, Joan Picanyol i Puig wrote:
What I'd like is the ability to have some services "ready-to-run", but not up by default. Some of them might be there for contingency purposes (so that an operator can start a failover), some of them might have to go up (and down) at certain times only.
If a service S doesn't need to be up for other services to run, then simply don't set dependencies on S. Don't include S in your main bundle of services. Start your main bundle; then, when you want to start S, "s6-rc -u S". When you want to stop it, "s6-rc -d S". Since nothing depends on S, "s6-rc -d S" will only stop S. While S is considered "down" from the s6-rc standpoint, its service directory will include a ./down file.
I lack knowledge & experience to attempt to provide details, so I'll just handwave poiting that the first concept to have clear is that of "identity": is this servicedir a "new" service definition or a modification of an existing one? It then should be feasible to compute the modifications needed to the live DAG (inserting/removing nodes as well as restarting them).
Yes. Identity is simply defined by the service name. The hard part is what to do when dependencies change for a same name. -- Laurent
