From 3309198c116c4d7a556b2e77d0c8456870d37a2d Mon Sep 17 00:00:00 2001 From: iliajie Date: Sun, 7 Aug 2022 15:18:35 +0300 Subject: [PATCH 1/3] Add a better way to run conditional command https://github.com/webmin/webmin/pull/1711/commits/162de2bda0557452edaa34058b0727e4e64dd1e1 --- makedebian.pl | 4 ++++ makerpm.pl | 4 ++++ setup.pl | 25 +++++++++++++++++++++++-- setup.sh | 7 +++++-- 4 files changed, 36 insertions(+), 4 deletions(-) diff --git a/makedebian.pl b/makedebian.pl index 472004f35..2d4dbbfae 100755 --- a/makedebian.pl +++ b/makedebian.pl @@ -333,6 +333,10 @@ if [ "\$inetd" != "1" ]; then /etc/$baseproduct/.post-install >/dev/null 2>&1 /dev/null 2>&1 /dev/null 2>&1 /dev/null 2>&1 /dev/null 2>&1 /dev/null 2>&1 /dev/null 2>&1 >$config_directory/start.bat"); @@ -629,6 +629,18 @@ else { print RELOAD "kill -USR1 \`cat \$pidfile\`\n"; close(RELOAD); + # Switch to systemd from init (intermediate) + if ($killmodenonepl == 1 && -x $systemctlcmd) { + if ($ver < 1.994) { + open(SDRELOAD, ">$config_directory/.reload-init-systemd"); + print SDRELOAD "#!/bin/sh\n"; + print SDRELOAD "$config_directory/.stop-init\n"; + print SDRELOAD "$config_directory/start\n"; + close(SDRELOAD); + chmod(0755, "$config_directory/.reload-init-systemd"); + } + } + # Pre install open(PREINST, ">$config_directory/.pre-install"); print PREINST "#!/bin/sh\n"; @@ -671,7 +683,6 @@ else { symlink("$config_directory/.reload-init", "$config_directory/reload"); # For systemd - my $systemctlcmd = &has_command('systemctl'); if (-x $systemctlcmd) { # Clear existing @@ -894,8 +905,18 @@ if (!$ENV{'nostart'}) { if ($upgrading) { $action = 'restart'; } + my $start_cmd_extra; + if ($upgrading && $killmodenonepl == 1) { + $start_cmd_extra = "$config_directory/.reload-init-systemd"; + if (-r "$config_directory/.reload-init-systemd") { + $start_cmd .= " ; $start_cmd_extra"; + $start_cmd_extra = -1; + } + } print "Attempting to $action Webmin web server ..\n"; $ex = system($start_cmd); + unlink($start_cmd_extra) + if ($start_cmd_extra == -1); if ($ex) { &errorexit("Failed to $action web server!"); } diff --git a/setup.sh b/setup.sh index c52b4c802..7e752e861 100755 --- a/setup.sh +++ b/setup.sh @@ -674,12 +674,15 @@ echo "#!/bin/sh" >$config_dir/.reload-init echo "echo Reloading Webmin server in $wadir" >>$config_dir/.reload-init echo "pidfile=\`grep \"^pidfile=\" $config_dir/miniserv.conf | sed -e 's/pidfile=//g'\`" >>$config_dir/.reload-init echo "kill -USR1 \`cat \$pidfile\`" >>$config_dir/.reload-init +# Switch to systemd from init (intermediate) if [ "$killmodenonesh" = "1" ] && [ -x "$systemctlcmd" ]; then current_version=`cat "$config_dir/version" 2>/dev/null` ancient_version=`echo $current_version 1.994 | awk '{if ($1 < $2) print 1; else print 0}'` if [ "$ancient_version" = "1" ]; then - echo "$config_dir/.stop-init" >>$config_dir/.reload-init - echo "$config_dir/start" >>$config_dir/.reload-init + echo "#!/bin/sh" >$config_dir/.reload-init-systemd + echo "$config_dir/.stop-init" >>$config_dir/.reload-init-systemd + echo "$config_dir/start" >>$config_dir/.reload-init-systemd + chmod 755 $config_dir/.reload-init-systemd fi fi # Pre install From 986d05a205c1f4e231b0576a530438805861f3c0 Mon Sep 17 00:00:00 2001 From: iliajie Date: Sun, 7 Aug 2022 15:21:02 +0300 Subject: [PATCH 2/3] Fix to test from already defined variable --- setup.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.pl b/setup.pl index 640d6fcd6..291d8605f 100755 --- a/setup.pl +++ b/setup.pl @@ -908,7 +908,7 @@ if (!$ENV{'nostart'}) { my $start_cmd_extra; if ($upgrading && $killmodenonepl == 1) { $start_cmd_extra = "$config_directory/.reload-init-systemd"; - if (-r "$config_directory/.reload-init-systemd") { + if (-r $start_cmd_extra) { $start_cmd .= " ; $start_cmd_extra"; $start_cmd_extra = -1; } From dee5f98f18e0f1cacb47b00bf6d0faea0f376016 Mon Sep 17 00:00:00 2001 From: iliajie Date: Sun, 7 Aug 2022 21:10:56 +0300 Subject: [PATCH 3/3] Fix weirdness with using `-1` --- setup.pl | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/setup.pl b/setup.pl index 291d8605f..7b59c1d8a 100755 --- a/setup.pl +++ b/setup.pl @@ -910,13 +910,12 @@ if (!$ENV{'nostart'}) { $start_cmd_extra = "$config_directory/.reload-init-systemd"; if (-r $start_cmd_extra) { $start_cmd .= " ; $start_cmd_extra"; - $start_cmd_extra = -1; } } print "Attempting to $action Webmin web server ..\n"; $ex = system($start_cmd); unlink($start_cmd_extra) - if ($start_cmd_extra == -1); + if (-r $start_cmd_extra); if ($ex) { &errorexit("Failed to $action web server!"); }