diff --git a/package/confd/confd.mk b/package/confd/confd.mk index 4ec5b577..164f1591 100644 --- a/package/confd/confd.mk +++ b/package/confd/confd.mk @@ -38,6 +38,8 @@ endif define CONFD_INSTALL_EXTRA for fn in confd.conf crond.conf resolvconf.conf; do \ cp $(CONFD_PKGDIR)/$$fn $(FINIT_D)/available/; \ + done + for fn in confd.conf resolvconf.conf; do \ ln -sf ../available/$$fn $(FINIT_D)/enabled/$$fn; \ done cp $(CONFD_PKGDIR)/tmpfiles.conf $(TARGET_DIR)/etc/tmpfiles.d/confd.conf diff --git a/src/confd/src/schedule.c b/src/confd/src/schedule.c index 1a67d43b..76eb1365 100644 --- a/src/confd/src/schedule.c +++ b/src/confd/src/schedule.c @@ -176,11 +176,13 @@ done: snprintf(expr, sz, "%s %s %s %s %s", min, hr, dom, mon, dow); } -static void reload_crond(void) +static void crond_apply(int active) { - char *args[] = { "pkill", "-HUP", "crond", NULL }; - - runbg(args, 0); + if (active) { + finit_enable("crond"); + } else { + finit_disable("crond"); + } } /* @@ -267,7 +269,7 @@ static void apply_schedules(struct lyd_node *config) out: fclose(fp); - reload_crond(); + crond_apply(count > 0); NOTE("schedule: %d active job(s) written to crontab", count); }