diff options
author | John Crispin <blogic@openwrt.org> | 2013-06-24 18:31:51 +0200 |
---|---|---|
committer | John Crispin <blogic@openwrt.org> | 2013-06-24 18:31:51 +0200 |
commit | 3018420f7fd004b48715100d2f60b27c64d48b75 (patch) | |
tree | acf107dbba9ef78350578241e74d39d582e00e00 | |
parent | c23413feeb5179911d623e6ffb84b36671652788 (diff) | |
download | unitd-3018420f7fd004b48715100d2f60b27c64d48b75.tar unitd-3018420f7fd004b48715100d2f60b27c64d48b75.zip |
add respawn support
https://dev.openwrt.org/ticket/13751
Signed-off-by: John Crispin <blogic@openwrt.org>
-rw-r--r-- | inittab.c | 13 | ||||
-rw-r--r-- | state.c | 1 |
2 files changed, 14 insertions, 0 deletions
@@ -175,6 +175,15 @@ err_out: regfree(&pat_cmdline); } +static void rcrespawn(struct init_action *a) +{ + a->tout.cb = respawn; + a->respawn = 500; + + a->proc.cb = child_exit; + fork_worker(a); +} + static struct init_handler handlers[] = { { .name = "sysinit", @@ -190,6 +199,10 @@ static struct init_handler handlers[] = { .name = "askconsole", .cb = askconsole, .multi = 1, + }, { + .name = "respawn", + .cb = rcrespawn, + .multi = 1, } }; @@ -50,6 +50,7 @@ static void state_enter(void) log_init(); procd_connect_ubus(); procd_inittab(); + procd_inittab_run("respawn"); procd_inittab_run("askconsole"); procd_inittab_run("askfirst"); procd_inittab_run("sysinit"); |