diff options
author | David Oberhollenzer <goliath@infraroot.at> | 2019-03-25 17:16:34 +0100 |
---|---|---|
committer | David Oberhollenzer <goliath@infraroot.at> | 2019-03-29 21:00:53 +0100 |
commit | 028394b8a5c6745bbf3ee34ba71d148bca75d247 (patch) | |
tree | 424e21815a67957eae37bd401022afbed70e14a9 /cmd | |
parent | 6fa0393be46b1bfdad79643d73d6e54f2df4997c (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.c | 3 | ||||
-rw-r--r-- | cmd/service/enable.c | 3 |
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); |