mirror of
https://github.com/systemd/systemd.git
synced 2025-03-25 18:50:18 +03:00
dev: use /dev/.run/systemd as runtime directory, instead of /dev/.systemd
This commit is contained in:
parent
29d958ce2b
commit
b925e72633
4
TODO
4
TODO
@ -20,10 +20,14 @@ F15:
|
||||
|
||||
* save/restore tool for SysV as requested by FPC
|
||||
|
||||
* optionally create watched directories in .path units
|
||||
|
||||
Features:
|
||||
|
||||
* consider services with no [Install] section and stored in /lib enabled by "systemctl is-enabled"
|
||||
|
||||
* store time when conditions where checked to inform admins about whether a unit was considered at all
|
||||
|
||||
* consider services with any kind of link in /etc/systemd/system enabled
|
||||
|
||||
* show failure error string in "systemctl status"
|
||||
|
@ -123,7 +123,7 @@
|
||||
reference implementation.</para>
|
||||
|
||||
<para>Internally, this function creates a file in
|
||||
<filename>/dev/.systemd/readahead/</filename> which is
|
||||
<filename>/dev/.run/systemd/readahead/</filename> which is
|
||||
then used as flag file to notify the read-ahead
|
||||
subsystem.</para>
|
||||
|
||||
|
@ -223,7 +223,7 @@ static int create_socket(char **name) {
|
||||
|
||||
zero(sa);
|
||||
sa.un.sun_family = AF_UNIX;
|
||||
snprintf(sa.un.sun_path, sizeof(sa.un.sun_path)-1, "/dev/.systemd/ask-password/sck.%llu", random_ull());
|
||||
snprintf(sa.un.sun_path, sizeof(sa.un.sun_path)-1, "/dev/.run/systemd/ask-password/sck.%llu", random_ull());
|
||||
|
||||
if (bind(fd, &sa.sa, offsetof(struct sockaddr_un, sun_path) + strlen(sa.un.sun_path)) < 0) {
|
||||
r = -errno;
|
||||
@ -265,7 +265,7 @@ int ask_password_agent(
|
||||
_FD_MAX
|
||||
};
|
||||
|
||||
char temp[] = "/dev/.systemd/ask-password/tmp.XXXXXX";
|
||||
char temp[] = "/dev/.run/systemd/ask-password/tmp.XXXXXX";
|
||||
char final[sizeof(temp)] = "";
|
||||
int fd = -1, r;
|
||||
FILE *f = NULL;
|
||||
@ -276,7 +276,7 @@ int ask_password_agent(
|
||||
|
||||
assert(_passphrases);
|
||||
|
||||
mkdir_p("/dev/.systemd/ask-password", 0755);
|
||||
mkdir_p("/dev/.run/systemd/ask-password", 0755);
|
||||
|
||||
if ((fd = mkostemp(temp, O_CLOEXEC|O_CREAT|O_WRONLY)) < 0) {
|
||||
log_error("Failed to create password file: %m");
|
||||
|
@ -262,7 +262,7 @@ int main(int argc, char *argv[]) {
|
||||
r = EXIT_SUCCESS;
|
||||
|
||||
if (status.si_code == CLD_EXITED && (status.si_status & 1))
|
||||
touch("/dev/.systemd/quotacheck");
|
||||
touch("/dev/.run/systemd/quotacheck");
|
||||
|
||||
finish:
|
||||
if (udev_device)
|
||||
|
@ -91,7 +91,7 @@ public class MyStatusIcon : StatusIcon {
|
||||
GLib.Object(icon_name : "dialog-password");
|
||||
set_title("System Password");
|
||||
|
||||
directory = File.new_for_path("/dev/.systemd/ask-password/");
|
||||
directory = File.new_for_path("/dev/.run/systemd/ask-password/");
|
||||
file_monitor = directory.monitor_directory(0);
|
||||
file_monitor.changed.connect(file_monitor_changed);
|
||||
|
||||
|
@ -142,20 +142,20 @@ int machine_id_setup(void) {
|
||||
fd = -1;
|
||||
|
||||
/* Hmm, we couldn't write it? So let's write it to
|
||||
* /dev/.systemd/machine-id as a replacement */
|
||||
* /dev/.run/systemd/machine-id as a replacement */
|
||||
|
||||
mkdir_p("/dev/.systemd", 0755);
|
||||
mkdir_p("/dev/.run/systemd", 0755);
|
||||
|
||||
if ((r = write_one_line_file("/dev/.systemd/machine-id", id)) < 0) {
|
||||
log_error("Cannot write /dev/.systemd/machine-id: %s", strerror(-r));
|
||||
if ((r = write_one_line_file("/dev/.run/systemd/machine-id", id)) < 0) {
|
||||
log_error("Cannot write /dev/.run/systemd/machine-id: %s", strerror(-r));
|
||||
|
||||
unlink("/dev/.systemd/machine-id");
|
||||
unlink("/dev/.run/systemd/machine-id");
|
||||
goto finish;
|
||||
}
|
||||
|
||||
/* And now, let's mount it over */
|
||||
r = mount("/dev/.systemd/machine-id", "/etc/machine-id", "bind", MS_BIND|MS_RDONLY, NULL) < 0 ? -errno : 0;
|
||||
unlink("/dev/.systemd/machine-id");
|
||||
r = mount("/dev/.run/systemd/machine-id", "/etc/machine-id", "bind", MS_BIND|MS_RDONLY, NULL) < 0 ? -errno : 0;
|
||||
unlink("/dev/.run/systemd/machine-id");
|
||||
|
||||
if (r < 0)
|
||||
log_error("Failed to mount /etc/machine-id: %s", strerror(-r));
|
||||
|
@ -1044,7 +1044,7 @@ int main(int argc, char *argv[]) {
|
||||
|
||||
/* If Plymouth is being run make sure we show the status, so
|
||||
* that there's something nice to see when people press Esc */
|
||||
if (access("/dev/.systemd/plymouth", F_OK) >= 0)
|
||||
if (access("/dev/.run/systemd/plymouth", F_OK) >= 0)
|
||||
arg_show_status = true;
|
||||
|
||||
if (arg_action == ACTION_HELP) {
|
||||
@ -1131,8 +1131,6 @@ int main(int argc, char *argv[]) {
|
||||
machine_id_setup();
|
||||
loopback_setup();
|
||||
|
||||
mkdir_p("/dev/.systemd/ask-password/", 0755);
|
||||
|
||||
test_mtab();
|
||||
test_usr();
|
||||
}
|
||||
|
@ -2550,22 +2550,20 @@ void manager_dispatch_bus_query_pid_done(
|
||||
}
|
||||
|
||||
int manager_open_serialization(Manager *m, FILE **_f) {
|
||||
char *path;
|
||||
char *path = NULL;
|
||||
mode_t saved_umask;
|
||||
int fd;
|
||||
FILE *f;
|
||||
|
||||
assert(_f);
|
||||
|
||||
if (m->running_as == MANAGER_SYSTEM) {
|
||||
mkdir_p("/dev/.systemd", 0755);
|
||||
if (m->running_as == MANAGER_SYSTEM)
|
||||
asprintf(&path, "/dev/.run/systemd/dump-%lu-XXXXXX", (unsigned long) getpid());
|
||||
else
|
||||
asprintf(&path, "/tmp/systemd-dump-%lu-XXXXXX", (unsigned long) getpid());
|
||||
|
||||
if (asprintf(&path, "/dev/.systemd/dump-%lu-XXXXXX", (unsigned long) getpid()) < 0)
|
||||
return -ENOMEM;
|
||||
} else {
|
||||
if (asprintf(&path, "/tmp/systemd-dump-%lu-XXXXXX", (unsigned long) getpid()) < 0)
|
||||
return -ENOMEM;
|
||||
}
|
||||
if (!path)
|
||||
return -ENOMEM;
|
||||
|
||||
saved_umask = umask(0077);
|
||||
fd = mkostemp(path, O_RDWR|O_CLOEXEC);
|
||||
@ -2862,7 +2860,7 @@ void manager_run_generators(Manager *m) {
|
||||
|
||||
if (!m->generator_unit_path) {
|
||||
char *p;
|
||||
char system_path[] = "/dev/.systemd/generator-XXXXXX",
|
||||
char system_path[] = "/dev/.run/systemd/generator-XXXXXX",
|
||||
user_path[] = "/tmp/systemd-generator-XXXXXX";
|
||||
|
||||
if (!(p = mkdtemp(m->running_as == MANAGER_SYSTEM ? system_path : user_path))) {
|
||||
|
@ -242,7 +242,7 @@ int mount_setup(void) {
|
||||
* appropriate labels, after mounting. The other virtual API
|
||||
* file systems do not need. */
|
||||
|
||||
if (unlink("/dev/.systemd/relabel-devtmpfs") >= 0)
|
||||
if (unlink("/dev/.systemd-relabel-devtmpfs") >= 0)
|
||||
nftw("/dev", nftw_cb, 64, FTW_MOUNT|FTW_PHYS);
|
||||
|
||||
/* Create a few default symlinks, which are normally created
|
||||
@ -252,5 +252,9 @@ int mount_setup(void) {
|
||||
NULSTR_FOREACH_PAIR(j, k, symlinks)
|
||||
symlink_and_label(j, k);
|
||||
|
||||
/* Create a few directories we always want around */
|
||||
mkdir("/dev/.run/systemd", 0755);
|
||||
mkdir("/dev/.run/systemd/ask-password", 0755);
|
||||
|
||||
return mount_cgroup_controllers();
|
||||
}
|
||||
|
@ -183,7 +183,7 @@ int lookup_paths_init(LookupPaths *p, ManagerRunningAs running_as) {
|
||||
if (!(p->unit_path = strv_new(
|
||||
/* If you modify this you also want to modify
|
||||
* systemdsystemunitpath= in systemd.pc.in! */
|
||||
"/dev/.systemd/system",
|
||||
"/dev/.run/systemd/system",
|
||||
SYSTEM_CONFIG_UNIT_PATH,
|
||||
"/etc/systemd/system",
|
||||
"/usr/local/share/systemd/system",
|
||||
|
@ -94,7 +94,7 @@ int main(int argc, char *argv[]) {
|
||||
if (arg_skip)
|
||||
return 0;
|
||||
|
||||
if (access("/dev/.systemd/quotacheck", F_OK) < 0)
|
||||
if (access("/dev/.run/systemd/quotacheck", F_OK) < 0)
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -289,13 +289,13 @@ static int collect(const char *root) {
|
||||
|
||||
log_debug("Collecting...");
|
||||
|
||||
if (access("/dev/.systemd/readahead/cancel", F_OK) >= 0) {
|
||||
if (access("/dev/.run/systemd/readahead/cancel", F_OK) >= 0) {
|
||||
log_debug("Collection canceled");
|
||||
r = -ECANCELED;
|
||||
goto finish;
|
||||
}
|
||||
|
||||
if (access("/dev/.systemd/readahead/done", F_OK) >= 0) {
|
||||
if (access("/dev/.run/systemd/readahead/done", F_OK) >= 0) {
|
||||
log_debug("Got termination request");
|
||||
goto done;
|
||||
}
|
||||
|
@ -167,11 +167,11 @@ int open_inotify(void) {
|
||||
return -errno;
|
||||
}
|
||||
|
||||
mkdir("/dev/.systemd", 0755);
|
||||
mkdir("/dev/.systemd/readahead", 0755);
|
||||
mkdir("/dev/.run/systemd", 0755);
|
||||
mkdir("/dev/.run/systemd/readahead", 0755);
|
||||
|
||||
if (inotify_add_watch(fd, "/dev/.systemd/readahead", IN_CREATE) < 0) {
|
||||
log_error("Failed to watch /dev/.systemd/readahead: %m");
|
||||
if (inotify_add_watch(fd, "/dev/.run/systemd/readahead", IN_CREATE) < 0) {
|
||||
log_error("Failed to watch /dev/.run/systemd/readahead: %m");
|
||||
close_nointr_nofail(fd);
|
||||
return -errno;
|
||||
}
|
||||
@ -183,10 +183,10 @@ ReadaheadShared *shared_get(void) {
|
||||
int fd;
|
||||
ReadaheadShared *m = NULL;
|
||||
|
||||
mkdir("/dev/.systemd", 0755);
|
||||
mkdir("/dev/.systemd/readahead", 0755);
|
||||
mkdir("/dev/.run/systemd", 0755);
|
||||
mkdir("/dev/.run/systemd/readahead", 0755);
|
||||
|
||||
if ((fd = open("/dev/.systemd/readahead/shared", O_CREAT|O_RDWR|O_CLOEXEC, 0644)) < 0) {
|
||||
if ((fd = open("/dev/.run/systemd/readahead/shared", O_CREAT|O_RDWR|O_CLOEXEC, 0644)) < 0) {
|
||||
log_error("Failed to create shared memory segment: %m");
|
||||
goto finish;
|
||||
}
|
||||
|
@ -192,7 +192,7 @@ static int replay(const char *root) {
|
||||
|
||||
log_debug("Replaying...");
|
||||
|
||||
if (access("/dev/.systemd/readahead/noreplay", F_OK) >= 0) {
|
||||
if (access("/dev/.run/systemd/readahead/noreplay", F_OK) >= 0) {
|
||||
log_debug("Got termination request");
|
||||
goto done;
|
||||
}
|
||||
|
@ -42,8 +42,8 @@ static int touch(const char *path) {
|
||||
#if !defined(DISABLE_SYSTEMD) && defined(__linux__)
|
||||
int fd;
|
||||
|
||||
mkdir("/dev/.systemd", 0755);
|
||||
mkdir("/dev/.systemd/readahead", 0755);
|
||||
mkdir("/dev/.run/systemd", 0755);
|
||||
mkdir("/dev/.run/systemd/readahead", 0755);
|
||||
|
||||
if ((fd = open(path, O_WRONLY|O_CREAT|O_CLOEXEC|O_NOCTTY, 0666)) < 0)
|
||||
return -errno;
|
||||
@ -66,11 +66,11 @@ int sd_readahead(const char *action) {
|
||||
return -EINVAL;
|
||||
|
||||
if (strcmp(action, "cancel") == 0)
|
||||
return touch("/dev/.systemd/readahead/cancel");
|
||||
return touch("/dev/.run/systemd/readahead/cancel");
|
||||
else if (strcmp(action, "done") == 0)
|
||||
return touch("/dev/.systemd/readahead/done");
|
||||
return touch("/dev/.run/systemd/readahead/done");
|
||||
else if (strcmp(action, "noreplay") == 0)
|
||||
return touch("/dev/.systemd/readahead/noreplay");
|
||||
return touch("/dev/.run/systemd/readahead/noreplay");
|
||||
|
||||
return -EINVAL;
|
||||
}
|
||||
|
@ -45,8 +45,7 @@ int selinux_setup(char *const argv[]) {
|
||||
/* Before we load the policy we create a flag file to ensure
|
||||
* that after the reexec we iterate through /dev to relabel
|
||||
* things. */
|
||||
mkdir_p("/dev/.systemd", 0755);
|
||||
touch("/dev/.systemd/relabel-devtmpfs");
|
||||
touch("/dev/.systemd-relabel-devtmpfs");
|
||||
|
||||
if (selinux_init_load_policy(&enforce) == 0) {
|
||||
log_debug("Successfully loaded SELinux policy, reexecuting.");
|
||||
@ -61,7 +60,7 @@ int selinux_setup(char *const argv[]) {
|
||||
} else {
|
||||
log_full(enforce > 0 ? LOG_ERR : LOG_WARNING, "Failed to load SELinux policy.");
|
||||
|
||||
unlink("/dev/.systemd/relabel-devtmpfs");
|
||||
unlink("/dev/.systemd-relabel-devtmpfs");
|
||||
|
||||
if (enforce > 0)
|
||||
return -EIO;
|
||||
|
@ -431,7 +431,7 @@ static int wall_tty_block(void) {
|
||||
if ((r = get_ctty_devnr(&devnr)) < 0)
|
||||
return -r;
|
||||
|
||||
if (asprintf(&p, "/dev/.systemd/ask-password-block/%u:%u", major(devnr), minor(devnr)) < 0)
|
||||
if (asprintf(&p, "/dev/.run/systemd/ask-password-block/%u:%u", major(devnr), minor(devnr)) < 0)
|
||||
return -ENOMEM;
|
||||
|
||||
mkdir_parents(p, 0700);
|
||||
@ -475,7 +475,7 @@ static bool wall_tty_match(const char *path) {
|
||||
* advantage that the block will automatically go away if the
|
||||
* process dies. */
|
||||
|
||||
if (asprintf(&p, "/dev/.systemd/ask-password-block/%u:%u", major(st.st_rdev), minor(st.st_rdev)) < 0)
|
||||
if (asprintf(&p, "/dev/.run/systemd/ask-password-block/%u:%u", major(st.st_rdev), minor(st.st_rdev)) < 0)
|
||||
return true;
|
||||
|
||||
fd = open(p, O_WRONLY|O_CLOEXEC|O_NONBLOCK|O_NOCTTY);
|
||||
@ -494,7 +494,7 @@ static int show_passwords(void) {
|
||||
struct dirent *de;
|
||||
int r = 0;
|
||||
|
||||
if (!(d = opendir("/dev/.systemd/ask-password"))) {
|
||||
if (!(d = opendir("/dev/.run/systemd/ask-password"))) {
|
||||
if (errno == ENOENT)
|
||||
return 0;
|
||||
|
||||
@ -519,7 +519,7 @@ static int show_passwords(void) {
|
||||
if (!startswith(de->d_name, "ask."))
|
||||
continue;
|
||||
|
||||
if (!(p = strappend("/dev/.systemd/ask-password/", de->d_name))) {
|
||||
if (!(p = strappend("/dev/.run/systemd/ask-password/", de->d_name))) {
|
||||
log_error("Out of memory");
|
||||
r = -ENOMEM;
|
||||
goto finish;
|
||||
@ -558,14 +558,14 @@ static int watch_passwords(void) {
|
||||
|
||||
tty_block_fd = wall_tty_block();
|
||||
|
||||
mkdir_p("/dev/.systemd/ask-password", 0755);
|
||||
mkdir_p("/dev/.run/systemd/ask-password", 0755);
|
||||
|
||||
if ((notify = inotify_init1(IN_CLOEXEC)) < 0) {
|
||||
r = -errno;
|
||||
goto finish;
|
||||
}
|
||||
|
||||
if (inotify_add_watch(notify, "/dev/.systemd/ask-password", IN_CLOSE_WRITE|IN_MOVED_TO) < 0) {
|
||||
if (inotify_add_watch(notify, "/dev/.run/systemd/ask-password", IN_CLOSE_WRITE|IN_MOVED_TO) < 0) {
|
||||
r = -errno;
|
||||
goto finish;
|
||||
}
|
||||
|
@ -11,7 +11,7 @@ systemdsystemunitdir=@systemunitdir@
|
||||
systemduserunitdir=@pkgdatadir@/user
|
||||
systemdsystemconfdir=@pkgsysconfdir@/system
|
||||
systemduserconfdir=@pkgsysconfdir@/user
|
||||
systemdsystemunitpath=/dev/.systemd/system:${systemdsystemconfdir}:/etc/systemd/system:/usr/local/share/systemd/system:/usr/share/systemd/system:/lib/systemd/system:${systemdsystemunitdir}
|
||||
systemdsystemunitpath=/dev/.run/systemd/system:${systemdsystemconfdir}:/etc/systemd/system:/usr/local/share/systemd/system:/usr/share/systemd/system:/lib/systemd/system:${systemdsystemunitdir}
|
||||
|
||||
Name: systemd
|
||||
Description: systemd System and Service Manager
|
||||
|
@ -12,4 +12,4 @@ Conflicts=shutdown.target
|
||||
Before=basic.target shutdown.target
|
||||
|
||||
[Path]
|
||||
DirectoryNotEmpty=/dev/.systemd/ask-password
|
||||
DirectoryNotEmpty=/dev/.run/systemd/ask-password
|
||||
|
@ -12,4 +12,4 @@ Conflicts=shutdown.target systemd-ask-password-console.path systemd-ask-password
|
||||
Before=basic.target shutdown.target
|
||||
|
||||
[Path]
|
||||
DirectoryNotEmpty=/dev/.systemd/ask-password
|
||||
DirectoryNotEmpty=/dev/.run/systemd/ask-password
|
||||
|
@ -12,4 +12,4 @@ Conflicts=shutdown.target
|
||||
Before=basic.target shutdown.target
|
||||
|
||||
[Path]
|
||||
DirectoryNotEmpty=/dev/.systemd/ask-password
|
||||
DirectoryNotEmpty=/dev/.run/systemd/ask-password
|
||||
|
Loading…
x
Reference in New Issue
Block a user