diff options
-rw-r--r-- | perl-install/services.pm | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/perl-install/services.pm b/perl-install/services.pm index 70c88b03d..179fe0972 100644 --- a/perl-install/services.pm +++ b/perl-install/services.pm @@ -306,13 +306,13 @@ sub _set_service { if (member($service, @xinetd_services)) { run_program::rooted($::prefix, "chkconfig", $enable ? "--add" : "--del", $service); } elsif (running_systemd() or has_systemd()) { - if (-l "/lib/systemd/system/$service.service") { - $service = basename(readlink("/lib/systemd/system/$service.service")); - } - else { - $service = $service . ".service"; - } - run_program::rooted($::prefix, "/bin/systemctl", $enable ? "enable" : "disable", $service); + # systemctl rejects any symlinked units. You have to enabled the real file + if (-l "/lib/systemd/system/$service.service") { + $service = basename(readlink("/lib/systemd/system/$service.service")); + } else { + $service = $service.".service"; + } + run_program::rooted($::prefix, "/bin/systemctl", $enable ? "enable" : "disable", $service); } else { my $script = "/etc/rc.d/init.d/$service"; run_program::rooted($::prefix, "chkconfig", $enable ? "--add" : "--del", $service); |