X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=execute.h;h=8275d636fef1bbe1e9290fe26277352d213d47bb;hb=257eca1a9c2d0ef110c21e74952e9723d778e267;hp=cb69bb3bd82c43f8f2b06116b76e69053a5133ed;hpb=8e27452380193a5f81bfd08a59aab8b07008ba0b;p=elogind.git diff --git a/execute.h b/execute.h index cb69bb3bd..8275d636f 100644 --- a/execute.h +++ b/execute.h @@ -59,7 +59,8 @@ typedef enum ExecInput { struct ExecStatus { pid_t pid; - usec_t timestamp; + usec_t start_timestamp; + usec_t exit_timestamp; int code; /* as in siginfo_t::si_code */ int status; /* as in sigingo_t::si_status */ }; @@ -93,6 +94,7 @@ struct ExecContext { bool cpu_sched_reset_on_fork; bool non_blocking; + bool new_session; ExecInput input; ExecOutput output; @@ -148,10 +150,11 @@ typedef enum ExitStatus { EXIT_GROUP, EXIT_USER, EXIT_CAPABILITIES, - EXIT_CGROUP + EXIT_CGROUP, /* 220 */ + EXIT_SETSID } ExitStatus; -int exec_spawn(const ExecCommand *command, +int exec_spawn(ExecCommand *command, const ExecContext *context, int *fds, unsigned n_fds, bool apply_permissions, @@ -172,6 +175,7 @@ void exec_context_done(ExecContext *c); void exec_context_dump(ExecContext *c, FILE* f, const char *prefix); void exec_status_fill(ExecStatus *s, pid_t pid, int code, int status); +void exec_status_dump(ExecStatus *s, FILE *f, const char *prefix); const char* exec_output_to_string(ExecOutput i); int exec_output_from_string(const char *s);