Вместе с подсистемой systemd появилась команда systemctl. Она позволяет управлять основными процессами Linux. Ниже представлена небольшая инструкция в виде шпаргалки наиболее используемых команд.
Без параметров, systemctl показывает список запущенных служб, точек монтирования, устройств и других юнитов.
# systemctl
Примерный вывод команды:
1) название юнита;2) тип юнита (например, service: служба или демон, mount: точка монтирования, device: устройства);3) состояние юнита (загружен или нет);4) обобщенный статус юнита (active: выполняется, inactive: не был запущен, maintenance: требуется внимание администратора);5) текущий статус (запущен или нет);6) описание.
1. Посмотреть статус службы:
# systemctl status network
* покажет статус службы на примере сети network
2. Запустить сервис:
# systemctl start mysql
* запустит сервис баз данных на примере mysql
3. Остановить службу:
# systemctl stop ntpd
* остановит сервис времени ntpd
4. Перезапустить службу:
# systemctl restart nginx
* перезапустит веб-сервер nginx
5. Включить автозапуск службы:
# systemctl enable apache
* разрешит автозапуск веб-сервера apache
6. Отключить автозапуск службы:
# systemctl disable firewalld
* запретит автозапуск брандмауэра firewalld
7. Выполнить команду на удаленной системе:
systemctl —host [email protected] stop cron
* остановит cron на компьютере с IP-адресом 192.168.0.15, подключившись под учетной записью root.
8. Перезагрузить сервер:
systemctl reboot
* перезагрузит локальный сервер.
Подсистему systemd также можно использовать для автозапуска сервисов или скриптов. Для этого в каталоге /usr/lib/systemd/system создаем юнит (файл) с расширением .service. Подробнее разберем на примере сервиса bind:
vi /usr/lib/systemd/system/named.service
Содержимое может быть следующего содержания:
[Unit]Description=Berkeley Internet Name Domain (DNS)Wants=nss-lookup.targetWants=named-setup-rndc.serviceBefore=nss-lookup.targetAfter=network.targetAfter=named-setup-rndc.service
[Service]Type=forkingEnvironment=NAMEDCONF=/etc/named.confEnvironmentFile=-/etc/sysconfig/namedEnvironment=KRB5_KTNAME=/etc/named.keytabPIDFile=/run/named/named.pidExecStartPre=/bin/bash -c ‘if [ ! «$DISABLE_ZONE_CHECKING» == «yes» ]; then /usr/sbin/named-checkconf -z «$NAMEDCONF»; else echo «Checking of zone files is disabled»; fi’ExecStart=/usr/sbin/named -u named -c ${NAMEDCONF} $OPTIONSExecReload=/bin/sh -c ‘/usr/sbin/rndc reload > /dev/null 2>&1 || /bin/kill -HUP $MAINPID’ExecStop=/bin/sh -c ‘/usr/sbin/rndc stop > /dev/null 2>&1 || /bin/kill -TERM $MAINPID’PrivateTmp=true
[Install]WantedBy=multi-user.target
* как правило, файл разделен на 3 части:
Подробнее можно почитать о структуре и возможных опциях на странице https://linux-notes.org/pishem-systemd-unit-fajl/
После внесения изменений и сохранения файла, необходимо перечитать изменения командой:
systemctl daemon-reload
Теперь можно разрешить автозапуск:
systemctl enable named
Если мы хотим внести изменения в юнит-файл сервиса, который был установлен с последним, необходимо использовать drop-in файл или файл переопределения настроек. В противном случае, после обновления программы наши изменения могут быть удалены.
И так, мы для примера взяли юнит для bind. Чтобы создать для него drop-in файл, вводим:
systemctl edit named
И вносим, например, такие изменения:
[Service]Restart=on-failure
* будет создан файл /etc/systemd/system/named.service.d/override.conf, который будет переопределять настройки основного юнит-файла. В данном примере, мы указываем на необходимость перезапуска сервиса при сбое.
Чтобы убедиться в использовании Drop-In файла смотрим статус сервиса:
systemctl status named
Мы должны увидеть что-то на подобие:
Drop-In: /etc/systemd/system/named.service.d — override.conf
Продолжая использовать данный сайт вы принимаете политику конфиденциальности и cookies