Commit graph

12 commits

Author SHA1 Message Date
Ariadne Conill
941d7c51d7 implement execution timeouts for executors
Previously, it was possible for an executor to hang forever.  To mitigate
this, we now implement process execution timeouts for executors, by looping
with waitpid(..., WNOHANG) and sleeping.

This could be implemented more efficiently with process descriptors, see
pidfd_open(2), but that interface is Linux-specific and is only available
on Linux 5.3 or newer.
2021-09-19 13:05:12 -05:00
Ariadne Conill
5a0b53cd73 libifupdown: add interface being run for each executor 2020-09-09 15:50:16 -06:00
Ariadne Conill
b514d31c26 ifupdown: implement --force 2020-09-08 19:17:00 -06:00
Ariadne Conill
4d64176ea3 execute: note the phase each executor is being invoked in 2020-08-26 02:06:36 -06:00
Ariadne Conill
0ca8e42ee6 refactoring locking, make it per-interface to avoid deadlocks 2020-07-29 03:10:55 -06:00
Ariadne Conill
fb5ff4eac2 lifecycle: add support for learning dependents from executors (ref #5) 2020-07-28 13:46:25 -06:00
Ariadne Conill
3a75de9f8c execute: add lif_execute_buf_with_result() to collect a result buffer 2020-07-28 13:01:15 -06:00
Ariadne Conill
9e4e17707f lifecycle: expose INTERFACES_FILE env var to executors 2020-07-26 02:50:01 -06:00
Ariadne Conill
96112d5dc9 libifupdown: execute: add lif_maybe_try_executor() 2020-07-25 02:17:27 -06:00
Ariadne Conill
eb8f1938dc libifupdown: add utility function to determine if a path is executable 2020-07-25 01:58:20 -06:00
Ariadne Conill
4006b38ffa execute: add lif_execute_opts structure 2020-07-23 08:22:26 -06:00
Ariadne Conill
a567d5d0f5 libifupdown: add lif_execute_fmt() 2020-07-23 06:12:56 -06:00