aboutsummaryrefslogtreecommitdiff
path: root/cmd
diff options
context:
space:
mode:
authorDavid Oberhollenzer <goliath@infraroot.at>2019-03-25 17:16:34 +0100
committerDavid Oberhollenzer <goliath@infraroot.at>2019-03-29 21:00:53 +0100
commit028394b8a5c6745bbf3ee34ba71d148bca75d247 (patch)
tree424e21815a67957eae37bd401022afbed70e14a9 /cmd
parent6fa0393be46b1bfdad79643d73d6e54f2df4997c (diff)
Add service configuration reloading
This commit add the ability to initd to reload the service configuration while running. The new configuration is merged with the existing one as follows: For each target: - If the existing service list is not NULL, we have not started that target yet. Simply replace it with the new list. - If it is NULL, the services have already been started. - First, remove all entries for services in that target that no loner exist (except from the 'running' list). - Second, add new services that we don't have yet. Treat them as recently diseased and let the user start them manualy. Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
Diffstat (limited to 'cmd')
-rw-r--r--cmd/service/disable.c3
-rw-r--r--cmd/service/enable.c3
2 files changed, 6 insertions, 0 deletions
diff --git a/cmd/service/disable.c b/cmd/service/disable.c
index 6210a8c..ffaab0a 100644
--- a/cmd/service/disable.c
+++ b/cmd/service/disable.c
@@ -4,6 +4,7 @@
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
+#include <signal.h>
#include <stdio.h>
#include <errno.h>
@@ -55,6 +56,8 @@ static int cmd_disable(int argc, char **argv)
goto out;
}
+ kill(1, SIGHUP);
+
ret = EXIT_SUCCESS;
out:
free(linkname);
diff --git a/cmd/service/enable.c b/cmd/service/enable.c
index 67cf0aa..8734aec 100644
--- a/cmd/service/enable.c
+++ b/cmd/service/enable.c
@@ -4,6 +4,7 @@
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
+#include <signal.h>
#include <stdio.h>
#include <errno.h>
@@ -60,6 +61,8 @@ static int cmd_enable(int argc, char **argv)
goto out;
}
+ kill(1, SIGHUP);
+
ret = EXIT_SUCCESS;
out:
free(linkname);