mirror of
https://git.proxmox.com/git/pve-manager
synced 2025-08-16 07:30:40 +00:00
api/services: improve essential service check, allow reload and start
reload is actually preferred, and even if most of the time this even won't reach the API, allowing to start them is still definitively fine! Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
This commit is contained in:
parent
05d5632db2
commit
d438bb3e67
@ -34,6 +34,11 @@ my $service_name_list = [
|
||||
'ksmtuned',
|
||||
'systemd-timesyncd',
|
||||
];
|
||||
my $essential_services = {
|
||||
pveproxy => 1,
|
||||
pvedaemon => 1,
|
||||
'pve-cluster' => 1,
|
||||
};
|
||||
|
||||
# since postfix package 3.1.0-3.1 the postfix unit is only here to
|
||||
# manage subinstances, of which the default is called "-".
|
||||
@ -92,17 +97,12 @@ my $service_cmd = sub {
|
||||
|
||||
my $initd_cmd;
|
||||
|
||||
die "unknown service command '$cmd'\n"
|
||||
if $cmd !~ m/^(start|stop|restart|reload)$/;
|
||||
die "unknown service command '$cmd'\n" if $cmd !~ m/^(start|stop|restart|reload|try-reload-or-restart)$/;
|
||||
|
||||
if ($service eq 'pvecluster' || $service eq 'pvedaemon' || $service eq 'pveproxy') {
|
||||
if ($cmd eq 'restart') {
|
||||
# OK
|
||||
} else {
|
||||
die "invalid service cmd '$service $cmd': ERROR";
|
||||
}
|
||||
if ($essential_services->{$service} && $cmd eq 'stop') {
|
||||
die "invalid service cmd '$service $cmd': refusing to stop essential service!\n";
|
||||
}
|
||||
|
||||
|
||||
PVE::Tools::run_command(['systemctl', $cmd, $service]);
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user