/usr/lib/calamares/modules/services/main.py is in calamares 3.1.12-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 | #!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
# === This file is part of Calamares - <http://github.com/calamares> ===
#
# Copyright 2014, Philip Müller <philm@manjaro.org>
# Copyright 2014, Teo Mrnjavac <teo@kde.org>
# Copyright 2017, Alf Gaida <agaida@siduction.org>
#
# Calamares is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# Calamares is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Calamares. If not, see <http://www.gnu.org/licenses/>.
import libcalamares
def run():
"""
Setup systemd services
"""
services = libcalamares.job.configuration['services']
targets = libcalamares.job.configuration['targets']
disable = libcalamares.job.configuration['disable']
# note that the "systemctl enable" and "systemctl disable" commands used
# here will work in a chroot; in fact, they are the only systemctl commands
# that support that, see:
# http://0pointer.de/blog/projects/changing-roots.html
# enable services
for svc in services:
ec = libcalamares.utils.target_env_call(
['systemctl', 'enable', '{}.service'.format(svc['name'])]
)
if ec != 0:
if svc['mandatory']:
return ("Cannot enable systemd service {}".format(svc['name']),
"systemctl enable call in chroot returned error code "
"{}".format(ec)
)
else:
libcalamares.utils.debug(
"Cannot enable systemd service {}".format(svc['name'])
)
libcalamares.utils.debug(
"systemctl enable call in chroot returned error code "
"{}".format(ec)
)
# enable targets
for tgt in targets:
ec = libcalamares.utils.target_env_call(
['systemctl', 'enable', '{}.target'.format(tgt['name'])]
)
if ec != 0:
if tgt['mandatory']:
return ("Cannot enable systemd target {}".format(tgt['name']),
"systemctl enable call in chroot returned error code"
"{}".format(ec)
)
else:
libcalamares.utils.debug(
"Cannot enable systemd target {}".format(tgt['name'])
)
libcalamares.utils.debug(
"systemctl enable call in chroot returned error code "
"{}".format(ec)
)
for dbl in disable:
ec = libcalamares.utils.target_env_call(
['systemctl', 'disable', '{}.service'.format(dbl['name'])]
)
if ec != 0:
if dbl['mandatory']:
return ("Cannot disable systemd service"
"{}".format(dbl['name']),
"systemctl disable call in chroot returned error code"
"{}".format(ec))
else:
libcalamares.utils.debug(
"Cannot disable systemd service {}".format(dbl['name'])
)
libcalamares.utils.debug(
"systemctl disable call in chroot returned error code "
"{}".format(ec)
)
return None
|