manager: write serialization to /dev/.systemd/ instead of /dev/shm
This commit is contained in:
parent
36adffeab0
commit
d8d5ab981a
5
fixme
5
fixme
|
@ -39,13 +39,8 @@
|
||||||
|
|
||||||
* In command lines, support both "$FOO" and $FOO
|
* In command lines, support both "$FOO" and $FOO
|
||||||
* /etc must always take precedence even if we follow symlinks!
|
* /etc must always take precedence even if we follow symlinks!
|
||||||
* fix merging of device units
|
|
||||||
* color aus bei stdout auf !tty
|
* color aus bei stdout auf !tty
|
||||||
|
|
||||||
getty before prefdm
|
|
||||||
|
|
||||||
* /lib/init/rw
|
|
||||||
|
|
||||||
* vielleicht implizit immer auf syslog dependen?
|
* vielleicht implizit immer auf syslog dependen?
|
||||||
|
|
||||||
* debian deadlock when partition auf noauto is.
|
* debian deadlock when partition auf noauto is.
|
||||||
|
|
|
@ -773,7 +773,7 @@ static int prepare_reexecute(Manager *m, FILE **_f, FDSet **_fds) {
|
||||||
assert(_f);
|
assert(_f);
|
||||||
assert(_fds);
|
assert(_fds);
|
||||||
|
|
||||||
if ((r = manager_open_serialization(&f)) < 0) {
|
if ((r = manager_open_serialization(m, &f)) < 0) {
|
||||||
log_error("Failed to create serialization faile: %s", strerror(-r));
|
log_error("Failed to create serialization faile: %s", strerror(-r));
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
|
|
|
@ -2279,7 +2279,7 @@ void manager_dispatch_bus_query_pid_done(
|
||||||
UNIT_VTABLE(u)->bus_query_pid_done(u, name, pid);
|
UNIT_VTABLE(u)->bus_query_pid_done(u, name, pid);
|
||||||
}
|
}
|
||||||
|
|
||||||
int manager_open_serialization(FILE **_f) {
|
int manager_open_serialization(Manager *m, FILE **_f) {
|
||||||
char *path;
|
char *path;
|
||||||
mode_t saved_umask;
|
mode_t saved_umask;
|
||||||
int fd;
|
int fd;
|
||||||
|
@ -2287,8 +2287,15 @@ int manager_open_serialization(FILE **_f) {
|
||||||
|
|
||||||
assert(_f);
|
assert(_f);
|
||||||
|
|
||||||
if (asprintf(&path, "/dev/shm/systemd-%u.dump-XXXXXX", (unsigned) getpid()) < 0)
|
if (m->running_as == MANAGER_SYSTEM) {
|
||||||
return -ENOMEM;
|
mkdir_p("/dev/.systemd", 0755);
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
saved_umask = umask(0077);
|
saved_umask = umask(0077);
|
||||||
fd = mkostemp(path, O_RDWR|O_CLOEXEC);
|
fd = mkostemp(path, O_RDWR|O_CLOEXEC);
|
||||||
|
@ -2396,7 +2403,7 @@ int manager_reload(Manager *m) {
|
||||||
|
|
||||||
assert(m);
|
assert(m);
|
||||||
|
|
||||||
if ((r = manager_open_serialization(&f)) < 0)
|
if ((r = manager_open_serialization(m, &f)) < 0)
|
||||||
return r;
|
return r;
|
||||||
|
|
||||||
if (!(fds = fdset_new())) {
|
if (!(fds = fdset_new())) {
|
||||||
|
|
|
@ -239,7 +239,7 @@ void manager_write_utmp_runlevel(Manager *m, Unit *t);
|
||||||
void manager_dispatch_bus_name_owner_changed(Manager *m, const char *name, const char* old_owner, const char *new_owner);
|
void manager_dispatch_bus_name_owner_changed(Manager *m, const char *name, const char* old_owner, const char *new_owner);
|
||||||
void manager_dispatch_bus_query_pid_done(Manager *m, const char *name, pid_t pid);
|
void manager_dispatch_bus_query_pid_done(Manager *m, const char *name, pid_t pid);
|
||||||
|
|
||||||
int manager_open_serialization(FILE **_f);
|
int manager_open_serialization(Manager *m, FILE **_f);
|
||||||
|
|
||||||
int manager_serialize(Manager *m, FILE *f, FDSet *fds);
|
int manager_serialize(Manager *m, FILE *f, FDSet *fds);
|
||||||
int manager_deserialize(Manager *m, FILE *f, FDSet *fds);
|
int manager_deserialize(Manager *m, FILE *f, FDSet *fds);
|
||||||
|
|
Loading…
Reference in a new issue