mirror of
https://github.com/morgan9e/systemd
synced 2026-04-15 00:47:10 +09:00
@@ -26,7 +26,7 @@ static int files_add(
|
||||
Hashmap **files,
|
||||
Set **masked,
|
||||
const char *suffix,
|
||||
unsigned flags) {
|
||||
ConfFilesFlags flags) {
|
||||
|
||||
int r;
|
||||
|
||||
@@ -141,7 +141,7 @@ int conf_files_list_strv(
|
||||
char ***ret,
|
||||
const char *suffix,
|
||||
const char *root,
|
||||
unsigned flags,
|
||||
ConfFilesFlags flags,
|
||||
const char * const *dirs) {
|
||||
|
||||
_cleanup_hashmap_free_ Hashmap *fh = NULL;
|
||||
@@ -175,7 +175,7 @@ int conf_files_list_strv_at(
|
||||
char ***ret,
|
||||
const char *suffix,
|
||||
int rfd,
|
||||
unsigned flags,
|
||||
ConfFilesFlags flags,
|
||||
const char * const *dirs) {
|
||||
|
||||
_cleanup_hashmap_free_ Hashmap *fh = NULL;
|
||||
@@ -274,15 +274,15 @@ int conf_files_insert(char ***strv, const char *root, char **dirs, const char *p
|
||||
return r;
|
||||
}
|
||||
|
||||
int conf_files_list(char ***ret, const char *suffix, const char *root, unsigned flags, const char *dir) {
|
||||
int conf_files_list(char ***ret, const char *suffix, const char *root, ConfFilesFlags flags, const char *dir) {
|
||||
return conf_files_list_strv(ret, suffix, root, flags, STRV_MAKE_CONST(dir));
|
||||
}
|
||||
|
||||
int conf_files_list_at(char ***ret, const char *suffix, int rfd, unsigned flags, const char *dir) {
|
||||
int conf_files_list_at(char ***ret, const char *suffix, int rfd, ConfFilesFlags flags, const char *dir) {
|
||||
return conf_files_list_strv_at(ret, suffix, rfd, flags, STRV_MAKE_CONST(dir));
|
||||
}
|
||||
|
||||
int conf_files_list_nulstr(char ***ret, const char *suffix, const char *root, unsigned flags, const char *dirs) {
|
||||
int conf_files_list_nulstr(char ***ret, const char *suffix, const char *root, ConfFilesFlags flags, const char *dirs) {
|
||||
_cleanup_strv_free_ char **d = NULL;
|
||||
|
||||
assert(ret);
|
||||
@@ -294,7 +294,7 @@ int conf_files_list_nulstr(char ***ret, const char *suffix, const char *root, un
|
||||
return conf_files_list_strv(ret, suffix, root, flags, (const char**) d);
|
||||
}
|
||||
|
||||
int conf_files_list_nulstr_at(char ***ret, const char *suffix, int rfd, unsigned flags, const char *dirs) {
|
||||
int conf_files_list_nulstr_at(char ***ret, const char *suffix, int rfd, ConfFilesFlags flags, const char *dirs) {
|
||||
_cleanup_strv_free_ char **d = NULL;
|
||||
|
||||
assert(ret);
|
||||
|
||||
@@ -3,20 +3,20 @@
|
||||
|
||||
#include "forward.h"
|
||||
|
||||
enum {
|
||||
typedef enum ConfFilesFlags {
|
||||
CONF_FILES_EXECUTABLE = 1 << 0,
|
||||
CONF_FILES_REGULAR = 1 << 1,
|
||||
CONF_FILES_DIRECTORY = 1 << 2,
|
||||
CONF_FILES_BASENAME = 1 << 3,
|
||||
CONF_FILES_FILTER_MASKED = 1 << 4,
|
||||
};
|
||||
} ConfFilesFlags;
|
||||
|
||||
int conf_files_list(char ***ret, const char *suffix, const char *root, unsigned flags, const char *dir);
|
||||
int conf_files_list_at(char ***ret, const char *suffix, int rfd, unsigned flags, const char *dir);
|
||||
int conf_files_list_strv(char ***ret, const char *suffix, const char *root, unsigned flags, const char* const* dirs);
|
||||
int conf_files_list_strv_at(char ***ret, const char *suffix, int rfd, unsigned flags, const char * const *dirs);
|
||||
int conf_files_list_nulstr(char ***ret, const char *suffix, const char *root, unsigned flags, const char *dirs);
|
||||
int conf_files_list_nulstr_at(char ***ret, const char *suffix, int rfd, unsigned flags, const char *dirs);
|
||||
int conf_files_list(char ***ret, const char *suffix, const char *root, ConfFilesFlags flags, const char *dir);
|
||||
int conf_files_list_at(char ***ret, const char *suffix, int rfd, ConfFilesFlags flags, const char *dir);
|
||||
int conf_files_list_strv(char ***ret, const char *suffix, const char *root, ConfFilesFlags flags, const char* const* dirs);
|
||||
int conf_files_list_strv_at(char ***ret, const char *suffix, int rfd, ConfFilesFlags flags, const char * const *dirs);
|
||||
int conf_files_list_nulstr(char ***ret, const char *suffix, const char *root, ConfFilesFlags flags, const char *dirs);
|
||||
int conf_files_list_nulstr_at(char ***ret, const char *suffix, int rfd, ConfFilesFlags flags, const char *dirs);
|
||||
int conf_files_insert(char ***strv, const char *root, char **dirs, const char *path);
|
||||
int conf_files_list_with_replacement(
|
||||
const char *root,
|
||||
|
||||
@@ -3909,9 +3909,14 @@ static int manager_run_environment_generators(Manager *m) {
|
||||
};
|
||||
|
||||
WITH_UMASK(0022)
|
||||
r = execute_directories((const char* const*) paths, DEFAULT_TIMEOUT_USEC, gather_environment,
|
||||
args, NULL, m->transient_environment,
|
||||
EXEC_DIR_PARALLEL | EXEC_DIR_IGNORE_ERRORS | EXEC_DIR_SET_SYSTEMD_EXEC_PID);
|
||||
r = execute_directories(
|
||||
(const char* const*) paths,
|
||||
DEFAULT_TIMEOUT_USEC,
|
||||
gather_environment,
|
||||
args,
|
||||
/* argv[]= */ NULL,
|
||||
m->transient_environment,
|
||||
EXEC_DIR_PARALLEL | EXEC_DIR_IGNORE_ERRORS | EXEC_DIR_SET_SYSTEMD_EXEC_PID);
|
||||
return r;
|
||||
}
|
||||
|
||||
|
||||
@@ -307,7 +307,12 @@ int execute_directories(
|
||||
|
||||
assert(!strv_isempty((char* const*) directories));
|
||||
|
||||
r = conf_files_list_strv(&paths, NULL, NULL, CONF_FILES_EXECUTABLE|CONF_FILES_REGULAR|CONF_FILES_FILTER_MASKED, directories);
|
||||
r = conf_files_list_strv(
|
||||
&paths,
|
||||
/* suffix= */ NULL,
|
||||
/* root= */ NULL,
|
||||
CONF_FILES_EXECUTABLE|CONF_FILES_REGULAR|CONF_FILES_FILTER_MASKED,
|
||||
directories);
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Failed to enumerate executables: %m");
|
||||
|
||||
|
||||
@@ -1054,10 +1054,10 @@ int generator_write_veritysetup_service_section(
|
||||
void log_setup_generator(void) {
|
||||
if (invoked_by_systemd()) {
|
||||
/* Disable talking to syslog/journal (i.e. the two IPC-based loggers) if we run in system context. */
|
||||
if (cg_pid_get_owner_uid(0, NULL) == -ENXIO /* not running in a per-user slice */)
|
||||
if (streq_ptr(getenv("SYSTEMD_SCOPE"), "system"))
|
||||
log_set_prohibit_ipc(true);
|
||||
|
||||
/* This effectively means: journal for per-user generators, kmsg otherwise */
|
||||
/* This effectively means: journal for per-user service manager generators, kmsg for per-system service manager generators */
|
||||
log_set_target(LOG_TARGET_JOURNAL_OR_KMSG);
|
||||
} else
|
||||
log_set_target(LOG_TARGET_AUTO);
|
||||
|
||||
Reference in New Issue
Block a user