mirror of
https://github.com/systemd/systemd.git
synced 2024-10-27 10:25:37 +03:00
core/service: try to query for new main process's starttime
Currently, when service_set_main_pidref() is called without specifying start_timestamp, exec_status_start() always uses dual_timestamp_now(). This is not ideal, though, as when the main pid changes halfway due to e.g. sd_notify + MAINPID=, it's definitely spurious.
This commit is contained in:
parent
6fb97a85c7
commit
f781292d6c
@ -214,6 +214,16 @@ static int service_set_main_pidref(Service *s, PidRef pidref_consume, const dual
|
||||
|
||||
if (!pidref_equal(&s->main_pid, &pidref)) {
|
||||
service_unwatch_main_pid(s);
|
||||
|
||||
dual_timestamp pid_start_time;
|
||||
|
||||
if (!start_timestamp) {
|
||||
usec_t t;
|
||||
|
||||
if (pidref_get_start_time(&pidref, &t) >= 0)
|
||||
start_timestamp = dual_timestamp_from_boottime(&pid_start_time, t);
|
||||
}
|
||||
|
||||
exec_status_start(&s->main_exec_status, pidref.pid, start_timestamp);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user