mirror of
https://github.com/systemd/systemd.git
synced 2024-10-27 01:55:22 +03:00
core/unit: unexport cg_kill log funcs, rather take in bool
It seems unnecessary to duplicate the func ptrs everywhere.
This commit is contained in:
parent
031860d6cb
commit
95e631da43
@ -919,7 +919,7 @@ static void mount_enter_dead(Mount *m, MountResult f, bool flush_result) {
|
||||
m->result = f;
|
||||
|
||||
unit_log_result(UNIT(m), m->result == MOUNT_SUCCESS, mount_result_to_string(m->result));
|
||||
unit_warn_leftover_processes(UNIT(m), unit_log_leftover_process_stop);
|
||||
unit_warn_leftover_processes(UNIT(m), /* start = */ false);
|
||||
|
||||
mount_set_state(m, m->result != MOUNT_SUCCESS ? MOUNT_FAILED : MOUNT_DEAD);
|
||||
|
||||
@ -1176,7 +1176,7 @@ static void mount_enter_mounting(Mount *m) {
|
||||
|
||||
if (source_is_dir)
|
||||
unit_warn_if_dir_nonempty(UNIT(m), m->where);
|
||||
unit_warn_leftover_processes(UNIT(m), unit_log_leftover_process_start);
|
||||
unit_warn_leftover_processes(UNIT(m), /* start = */ true);
|
||||
|
||||
m->control_command_id = MOUNT_EXEC_MOUNT;
|
||||
m->control_command = m->exec_command + MOUNT_EXEC_MOUNT;
|
||||
|
@ -2035,7 +2035,7 @@ static void service_enter_dead(Service *s, ServiceResult f, bool allow_restart)
|
||||
end_state = SERVICE_FAILED;
|
||||
restart_state = SERVICE_FAILED_BEFORE_AUTO_RESTART;
|
||||
}
|
||||
unit_warn_leftover_processes(UNIT(s), unit_log_leftover_process_stop);
|
||||
unit_warn_leftover_processes(UNIT(s), /* start = */ false);
|
||||
|
||||
if (!allow_restart)
|
||||
log_unit_debug(UNIT(s), "Service restart not allowed.");
|
||||
@ -2387,11 +2387,11 @@ static int service_adverse_to_leftover_processes(Service *s) {
|
||||
* instances running, lets not stress the rigor of these. Also ExecStartPre= parts of the service
|
||||
* aren't as rigoriously written to protect aganst against multiple use. */
|
||||
|
||||
if (unit_warn_leftover_processes(UNIT(s), unit_log_leftover_process_start) > 0 &&
|
||||
if (unit_warn_leftover_processes(UNIT(s), /* start = */ true) > 0 &&
|
||||
IN_SET(s->kill_context.kill_mode, KILL_MIXED, KILL_CONTROL_GROUP) &&
|
||||
!s->kill_context.send_sigkill)
|
||||
return log_unit_error_errno(UNIT(s), SYNTHETIC_ERRNO(EBUSY),
|
||||
"Will not start SendSIGKILL=no service of type KillMode=control-group or mixed while processes exist");
|
||||
return log_unit_error_errno(UNIT(s), SYNTHETIC_ERRNO(EBUSY),
|
||||
"Will not start SendSIGKILL=no service of type KillMode=control-group or mixed while processes exist");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -2061,7 +2061,7 @@ static void socket_enter_dead(Socket *s, SocketResult f) {
|
||||
else
|
||||
unit_log_failure(UNIT(s), socket_result_to_string(s->result));
|
||||
|
||||
unit_warn_leftover_processes(UNIT(s), unit_log_leftover_process_stop);
|
||||
unit_warn_leftover_processes(UNIT(s), /* start = */ false);
|
||||
|
||||
socket_set_state(s, s->result != SOCKET_SUCCESS ? SOCKET_FAILED : SOCKET_DEAD);
|
||||
|
||||
@ -2262,7 +2262,7 @@ static void socket_enter_start_pre(Socket *s) {
|
||||
|
||||
socket_unwatch_control_pid(s);
|
||||
|
||||
unit_warn_leftover_processes(UNIT(s), unit_log_leftover_process_start);
|
||||
unit_warn_leftover_processes(UNIT(s), /* start = */ true);
|
||||
|
||||
s->control_command_id = SOCKET_EXEC_START_PRE;
|
||||
s->control_command = s->exec_command[SOCKET_EXEC_START_PRE];
|
||||
|
@ -670,7 +670,8 @@ static void swap_enter_dead(Swap *s, SwapResult f) {
|
||||
s->result = f;
|
||||
|
||||
unit_log_result(UNIT(s), s->result == SWAP_SUCCESS, swap_result_to_string(s->result));
|
||||
unit_warn_leftover_processes(UNIT(s), unit_log_leftover_process_stop);
|
||||
unit_warn_leftover_processes(UNIT(s), /* start = */ false);
|
||||
|
||||
swap_set_state(s, s->result != SWAP_SUCCESS ? SWAP_FAILED : SWAP_DEAD);
|
||||
|
||||
s->exec_runtime = exec_runtime_destroy(s->exec_runtime);
|
||||
@ -752,7 +753,7 @@ static void swap_enter_activating(Swap *s) {
|
||||
|
||||
assert(s);
|
||||
|
||||
unit_warn_leftover_processes(UNIT(s), unit_log_leftover_process_start);
|
||||
unit_warn_leftover_processes(UNIT(s), /* start = */ true);
|
||||
|
||||
s->control_command_id = SWAP_EXEC_ACTIVATE;
|
||||
s->control_command = s->exec_command + SWAP_EXEC_ACTIVATE;
|
||||
|
@ -5840,7 +5840,8 @@ static bool ignore_leftover_process(const char *comm) {
|
||||
return comm && comm[0] == '('; /* Most likely our own helper process (PAM?), ignore */
|
||||
}
|
||||
|
||||
int unit_log_leftover_process_start(const PidRef *pid, int sig, void *userdata) {
|
||||
static int unit_log_leftover_process_start(const PidRef *pid, int sig, void *userdata) {
|
||||
const Unit *u = ASSERT_PTR(userdata);
|
||||
_cleanup_free_ char *comm = NULL;
|
||||
|
||||
assert(pidref_is_set(pid));
|
||||
@ -5852,7 +5853,7 @@ int unit_log_leftover_process_start(const PidRef *pid, int sig, void *userdata)
|
||||
|
||||
/* During start we print a warning */
|
||||
|
||||
log_unit_warning(userdata,
|
||||
log_unit_warning(u,
|
||||
"Found left-over process " PID_FMT " (%s) in control group while starting unit. Ignoring.\n"
|
||||
"This usually indicates unclean termination of a previous run, or service implementation deficiencies.",
|
||||
pid->pid, strna(comm));
|
||||
@ -5860,7 +5861,8 @@ int unit_log_leftover_process_start(const PidRef *pid, int sig, void *userdata)
|
||||
return 1;
|
||||
}
|
||||
|
||||
int unit_log_leftover_process_stop(const PidRef *pid, int sig, void *userdata) {
|
||||
static int unit_log_leftover_process_stop(const PidRef *pid, int sig, void *userdata) {
|
||||
const Unit *u = ASSERT_PTR(userdata);
|
||||
_cleanup_free_ char *comm = NULL;
|
||||
|
||||
assert(pidref_is_set(pid));
|
||||
@ -5872,20 +5874,19 @@ int unit_log_leftover_process_stop(const PidRef *pid, int sig, void *userdata) {
|
||||
|
||||
/* During stop we only print an informational message */
|
||||
|
||||
log_unit_info(userdata,
|
||||
log_unit_info(u,
|
||||
"Unit process " PID_FMT " (%s) remains running after unit stopped.",
|
||||
pid->pid, strna(comm));
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int unit_warn_leftover_processes(Unit *u, cg_kill_log_func_t log_func) {
|
||||
int unit_warn_leftover_processes(Unit *u, bool start) {
|
||||
assert(u);
|
||||
|
||||
(void) unit_pick_cgroup_path(u);
|
||||
|
||||
CGroupRuntime *crt = unit_get_cgroup_runtime(u);
|
||||
|
||||
if (!crt || !crt->cgroup_path)
|
||||
return 0;
|
||||
|
||||
@ -5894,7 +5895,7 @@ int unit_warn_leftover_processes(Unit *u, cg_kill_log_func_t log_func) {
|
||||
/* sig= */ 0,
|
||||
/* flags= */ 0,
|
||||
/* set= */ NULL,
|
||||
log_func,
|
||||
start ? unit_log_leftover_process_start : unit_log_leftover_process_stop,
|
||||
u);
|
||||
}
|
||||
|
||||
|
@ -990,10 +990,7 @@ void unit_unlink_state_files(Unit *u);
|
||||
|
||||
int unit_prepare_exec(Unit *u);
|
||||
|
||||
int unit_log_leftover_process_start(const PidRef* pid, int sig, void *userdata);
|
||||
int unit_log_leftover_process_stop(const PidRef* pid, int sig, void *userdata);
|
||||
|
||||
int unit_warn_leftover_processes(Unit *u, cg_kill_log_func_t log_func);
|
||||
int unit_warn_leftover_processes(Unit *u, bool start);
|
||||
|
||||
bool unit_needs_console(Unit *u);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user