Commit ba6b3039 authored by Lennart Poettering's avatar Lennart Poettering
Browse files

journal: rotate on SIGUSR2

parent 38a6db16
......@@ -163,8 +163,6 @@ Features:
* figure out whether we should leave dbus around during shutdown
* add interface to allow immediate rotation of the journal, and even flushing.
* dbus: in fedora, make the machine a symlink to /etc/machine-id
* journald: reuse XZ context
......@@ -199,14 +197,10 @@ Features:
* systemctl status: show coredumps
* systemctl status: show whether journal was rotated since service started
* save coredump in Windows/Mozilla minidump format
* support crash reporting operation modes (
* journal: allow per-entry control on /var vs. /run (think incognito browser mode)
* clean up session cgroups that remain after logout (think sshd), but eventually run empty
* support "systemctl stop foobar@.service" to stop all units matching a certain template
......@@ -97,6 +97,39 @@
<listitem><para>Request that journal
data from <filename>/run/</filename>
is flushed to
<filename>/var/</filename> in order to
make it persistent (if this is
enabled). This may be used after
<filename>/var/</filename> is mounted,
but is generally not required since
the first journal write when
<filename>/var/</filename> becomes
writable triggers the flushing
<listitem><para>Request immediate
rotation of the journal
<title>See Also</title>
......@@ -2143,6 +2143,7 @@ static int server_flush_proc_kmsg(Server *s) {
static int process_event(Server *s, struct epoll_event *ev) {
if (ev->data.fd == s->signal_fd) {
struct signalfd_siginfo sfsi;
......@@ -2167,7 +2168,13 @@ static int process_event(Server *s, struct epoll_event *ev) {
if (sfsi.ssi_signo == SIGUSR1) {
return 0;
return 1;
if (sfsi.ssi_signo == SIGUSR2) {
return 1;
log_debug("Received SIG%s", signal_to_string(sfsi.ssi_signo));
......@@ -2558,7 +2565,7 @@ static int open_signalfd(Server *s) {
assert_se(sigemptyset(&mask) == 0);
sigset_add_many(&mask, SIGINT, SIGTERM, SIGUSR1, -1);
sigset_add_many(&mask, SIGINT, SIGTERM, SIGUSR1, SIGUSR2, -1);
assert_se(sigprocmask(SIG_SETMASK, &mask, NULL) == 0);
s->signal_fd = signalfd(-1, &mask, SFD_NONBLOCK|SFD_CLOEXEC);
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment