core: add ExecStartXYZEx= with dbus support for executable prefixes

Closes #11654
This commit is contained in:
Anita Zhang
2019-05-30 20:41:42 -07:00
parent 9e90465539
commit b3d593673c
11 changed files with 450 additions and 129 deletions
+15
View File
@@ -20,6 +20,15 @@ typedef enum {
EXEC_DIR_IGNORE_ERRORS = 1 << 1, /* Ignore non-zero exit status of scripts */
} ExecDirFlags;
typedef enum ExecCommandFlags {
EXEC_COMMAND_IGNORE_FAILURE = 1 << 0,
EXEC_COMMAND_FULLY_PRIVILEGED = 1 << 1,
EXEC_COMMAND_NO_SETUID = 1 << 2,
EXEC_COMMAND_AMBIENT_MAGIC = 1 << 3,
EXEC_COMMAND_NO_ENV_EXPAND = 1 << 4,
_EXEC_COMMAND_FLAGS_INVALID = -1,
} ExecCommandFlags;
int execute_directories(
const char* const* directories,
usec_t timeout,
@@ -29,4 +38,10 @@ int execute_directories(
char *envp[],
ExecDirFlags flags);
int exec_command_flags_from_strv(char **ex_opts, ExecCommandFlags *flags);
int exec_command_flags_to_strv(ExecCommandFlags flags, char ***ex_opts);
extern const gather_stdout_callback_t gather_environment[_STDOUT_CONSUME_MAX];
const char* exec_command_flags_to_string(ExecCommandFlags i);
ExecCommandFlags exec_command_flags_from_string(const char *s);