aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJosé Bollo <jose.bollo@iot.bzh>2018-10-11 17:37:02 +0200
committerJosé Bollo <jose.bollo@iot.bzh>2018-10-12 14:33:44 +0200
commitdeaf20980bcacd8731e9228c86f528ac480c7f55 (patch)
treec06032da1cb75f739418fdfc7943e31b81af4ea8 /src
parent86e4c175b0c35d38c8a214ae1c6afce6ad6aac4c (diff)
APIv3: Allow to write application binding
This enable a binding version 3 to declare no API. This is used to start a job that will will run after initialisation. The tutorial tuto-app1 shows how. Run it with: afb-daemon --binding tuto-app1.so A further option could be add to close stdin even if running in foreground, as it was the case before. Change-Id: I2b384d125accb4642eed8e004642ba959326878f Signed-off-by: José Bollo <jose.bollo@iot.bzh>
Diffstat (limited to 'src')
-rw-r--r--src/main-afb-daemon.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/main-afb-daemon.c b/src/main-afb-daemon.c
index 77d7ab29..65481c43 100644
--- a/src/main-afb-daemon.c
+++ b/src/main-afb-daemon.c
@@ -215,13 +215,14 @@ static void setup_daemon()
+--------------------------------------------------------- */
static void daemonize()
{
- int fd = 0, daemon;
+ int fd = 0, daemon, nostdin;
const char *output;
pid_t pid;
daemon = 0;
output = NULL;
wrap_json_unpack(main_config, "{s?b s?s}", "daemon", &daemon, "output", &output);
+ nostdin = 0;
if (output) {
fd = open(output, O_WRONLY | O_APPEND | O_CREAT, 0640);
@@ -241,6 +242,8 @@ static void daemonize()
}
if (pid != 0)
_exit(0);
+
+ nostdin = 1;
}
/* closes the input */
@@ -253,8 +256,8 @@ static void daemonize()
close(fd);
}
- /* after that ctrl+C still works */
- close(0);
+ if (nostdin)
+ close(0); /* except if 'daemon', ctrl+C still works after that */
}
/*---------------------------------------------------------