mirror of
https://github.com/webmin/webmin.git
synced 2026-03-20 16:50:24 +00:00
Fix Usermin restart with systemd
This commit is contained in:
@@ -89,20 +89,8 @@ all configuration files.
|
||||
sub restart_usermin_miniserv
|
||||
{
|
||||
return undef if (&is_readonly_mode());
|
||||
return &miniserv_systemd_sig('HUP', 'usermin');
|
||||
local($pid, %miniserv, $addr, $i);
|
||||
if (&has_command('systemctl') &&
|
||||
&foreign_available("init")) {
|
||||
&foreign_require("init");
|
||||
# Run native restart as SIGHUP on miniserv just kills Usermin process
|
||||
my $unit_target = 'usermin';
|
||||
my $unit_path = &init::get_systemd_root($unit_target);
|
||||
if (-r "$unit_path/$unit_target.service") {
|
||||
my $rs = &system_logged("systemctl restart $unit_target >/dev/null 2>&1 </dev/null");
|
||||
if (!$rs) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
&get_usermin_miniserv_config(\%miniserv) || return;
|
||||
$miniserv{'inetd'} && return;
|
||||
open(PID, "<".$miniserv{'pidfile'}) || &error("Failed to open PID file");
|
||||
|
||||
@@ -2310,9 +2310,9 @@ it to restart. This will apply all configuration settings.
|
||||
=cut
|
||||
sub restart_miniserv
|
||||
{
|
||||
my ($nowait, $ignore) = @_;
|
||||
return undef if (&is_readonly_mode());
|
||||
return if (&miniserv_systemd_sig('HUP'));
|
||||
my ($nowait, $ignore) = @_;
|
||||
my %miniserv;
|
||||
&get_miniserv_config(\%miniserv) || return;
|
||||
if ($main::webmin_script_type eq 'web' && !$ENV{"MINISERV_CONFIG"} &&
|
||||
@@ -2400,9 +2400,9 @@ IP addresses and ports to accept connections on.
|
||||
=cut
|
||||
sub reload_miniserv
|
||||
{
|
||||
my ($ignore) = @_;
|
||||
return undef if (&is_readonly_mode());
|
||||
return if (&miniserv_systemd_sig('USR1'));
|
||||
my ($ignore) = @_;
|
||||
my %miniserv;
|
||||
&get_miniserv_config(\%miniserv) || return;
|
||||
if ($main::webmin_script_type eq 'web' && !$ENV{"MINISERV_CONFIG"} &&
|
||||
@@ -2454,7 +2454,7 @@ else {
|
||||
}
|
||||
}
|
||||
|
||||
=head2 miniserv_systemd_sig(signal)
|
||||
=head2 miniserv_systemd_sig(signal, [product])
|
||||
|
||||
Uses systemd to send given signal to existing miniserv process.
|
||||
Used to either fully restart it or just reload configuration
|
||||
@@ -2462,11 +2462,11 @@ Used to either fully restart it or just reload configuration
|
||||
=cut
|
||||
sub miniserv_systemd_sig
|
||||
{
|
||||
my ($sig) = @_;
|
||||
my ($sig, $product) = @_;
|
||||
$sig =~ tr/A-Z0-9//cd;
|
||||
|
||||
if (&has_command('systemctl')) {
|
||||
my $unit_target = &get_product_name();
|
||||
my $unit_target = $product || &get_product_name();
|
||||
my ($upathr,
|
||||
$upathd,
|
||||
$ufile) =
|
||||
|
||||
Reference in New Issue
Block a user