From 76ccb2b7ed2e0567a22e1cdd57e392b7086ed182 Mon Sep 17 00:00:00 2001 From: Ilia Ross Date: Mon, 17 Jun 2024 15:09:42 +0300 Subject: [PATCH] Fix support for Chrony in Debian systems --- time/apply.cgi | 2 +- time/index.cgi | 14 ++++++++------ time/time-lib.pl | 9 +++++---- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/time/apply.cgi b/time/apply.cgi index 87af93f9f..cda7a9017 100755 --- a/time/apply.cgi +++ b/time/apply.cgi @@ -56,7 +56,7 @@ if ($in{'action'} eq $text{'action_sync'}) { if (defined($in{'sync_service_name'}) && defined($in{'sync_service_status'})) { my $service_name = $in{'sync_service_name'}; - if ($service_name !~ /^(chronyd|systemd-timesyncd)$/) { + if ($service_name !~ /^(chronyd|chrony|systemd-timesyncd)$/) { &error(&text('error_serviceunknown', &html_escape($service_name))); } my $service_status = int($in{'sync_service_status'}); diff --git a/time/index.cgi b/time/index.cgi index 70d087093..acdfaf4bb 100755 --- a/time/index.cgi +++ b/time/index.cgi @@ -5,7 +5,8 @@ use warnings; no warnings 'redefine'; no warnings 'uninitialized'; require './time-lib.pl'; -our (%in, %text, %config, %access, $base_remote_user, $get_hardware_time_error); +our (%in, %text, %config, %access, $base_remote_user, + $get_hardware_time_error, $cronyd_name); my ($rawdate, $rawhwdate, %system_date, $rawtime, %hw_date, $txt); $txt = ""; @@ -174,13 +175,14 @@ if ( ( !$access{ 'sysdate' } && &has_command( "date" ) || !$access{ 'hwdate' } & $config{'timeserver_hardware'})); } } - if (&foreign_require('init') && &init::action_status('chronyd') > 0 && &has_command("chronyc")) { - my $chronyd_running = &init::status_action('chronyd'); - my $chronyd_run_atboot = &init::action_status('chronyd'); - my $ui_hiddens = &ui_hidden("sync_service_name", "chronyd"); + if (&foreign_require('init') && + &init::action_status($cronyd_name) > 0 && &has_command("chronyc")) { + my $chronyd_running = &init::status_action($cronyd_name); + my $chronyd_run_atboot = &init::action_status($cronyd_name); + my $ui_hiddens = &ui_hidden("sync_service_name", $cronyd_name); $ui_hiddens .= &ui_hidden("timeserver", $config{'timeserver'}) if (!$ntp_support); - print &ui_table_row(&text('index_tabsync2', 'chronyd'), + print &ui_table_row(&text('index_tabsync2', $cronyd_name), $ui_hiddens. &ui_radio("sync_service_status", (($chronyd_run_atboot == 2 && $chronyd_running) ? 2 : diff --git a/time/time-lib.pl b/time/time-lib.pl index 55ac80dea..86655625b 100755 --- a/time/time-lib.pl +++ b/time/time-lib.pl @@ -13,6 +13,7 @@ our ($timezones_file, $currentzone_link, $currentzone_file, $timezones_dir, $sysclock_file); our ($get_hardware_time_error); our $cron_cmd = "$module_config_directory/sync.pl"; +our $cronyd_name = $gconfig{'os_type'} eq 'debian-linux' ? 'chrony' : 'chronyd'; our $rawtime; if ($config{'zone_style'}) { do "$config{'zone_style'}-lib.pl"; @@ -49,13 +50,13 @@ if (&has_command("ntpdate")) { elsif (&has_command("sntp")) { $out = &backquote_logged("sntp -s $servs 2>&1"); } -elsif (&foreign_require('init') && &init::action_status('chronyd') > 0 && &has_command("chronyc")) { - my $chronyd_running = &init::status_action('chronyd'); - $out = &backquote_logged("systemctl restart chronyd 2>&1"); +elsif (&foreign_require('init') && &init::action_status($cronyd_name) > 0 && &has_command("chronyc")) { + my $chronyd_running = &init::status_action($cronyd_name); + $out = &backquote_logged("systemctl restart $cronyd_name 2>&1"); $out .= &backquote_logged("chronyc makestep 2>&1"); sleep ($chronyd_running ? 5 : 15); if (!$chronyd_running) { - &backquote_logged("systemctl stop chronyd 2>&1"); + &backquote_logged("systemctl stop $cronyd_name 2>&1"); } } elsif (&foreign_require('init') && &init::action_status('systemd-timesyncd') > 0) {