vlist_flush(&s->instances);
}
+ s->deleted = false;
+
rc(s->name, "running");
return 0;
service_delete(struct service *s)
{
vlist_flush_all(&s->instances);
+ s->deleted = true;
service_stopped(s);
}
void service_stopped(struct service *s)
{
- if (avl_is_empty(&s->instances.avl)) {
+ if (s->deleted && avl_is_empty(&s->instances.avl)) {
service_event("service.stop", s->name, NULL);
avl_delete(&services, &s->avl);
trigger_del(s);