Основные команды systemd
Практикующие системные администраторы в курсе, что все или почти все новые версии популярных Linux-дистрибутивов используют не традиционный System V init, а новую систему — Systemd. Все еще продолжаются споры о том, лучше ли systemd традиционных решений или нет, однако в современных системах альтернатив уже нет, поэтому стоит разобраться в основных функциях и командах.
Задача initd и systemd — запуститься после ядра системы и затем в необходимой последовательности осуществить запуск других необходимых служб и утилит. Ниже перечислим основные команды работы с сервисами.
Отметим, что принято использовать суффикс в указании имени необходимого модуля. Это не является обязательным — вызов systemctl status maridb и systemctl status mariadb.service выдаст одинаковый результат, но рекомендуется — ведь существуют и другие суффиксы — .socket, .device, .mount и так далее.
Запуск, перезапуск и остановка сервисов:
1 2 3 |
systemctl start app.service systemctl stop app.service systemctl restart app.service |
Для примера, перезапуск nginx:
1 |
systemctl restart nginx.service |
Если сервис поддерживает обновление конфигурации без полного перезапуска, можно использовать следующую команду:
1 |
systemctl reload app.service |
Есть одна приятная особенность — если неизвестно, поддерживает ли сервис обновление конфигурации без перезапустка, можно выполнить команду reload-or-restart:
1 |
systemctl reload-or-restart app.service |
В этом случае при наличии поддержки обновления конфигурации — это будет сделано, а если такой поддержки нет — сервис будет перезапущен полностью. Удобно!
Просмотр состояния сервиса может быть сделан с помощью systemctl status, например:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# systemctl status mariadb ● mariadb.service - MariaDB database server Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled) Active: active (running) since Sun 2017-04-09 11:50:05 EEST; 3h 29min ago Main PID: 12241 (mysqld_safe) CGroup: /system.slice/mariadb.service ├─12241 /bin/sh /usr/bin/mysqld_safe --basedir=/usr └─12578 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mariadb/mariadb.log --pid-file=/var/run/mariadb/mariadb.pid --socket=/var/lib/mysql/m... Apr 09 11:50:03 host.itldc.com mariadb-prepare-db-dir[12162]: The latest information about MariaDB is available at http://mariadb.org/. Apr 09 11:50:03 host.itldc.com mariadb-prepare-db-dir[12162]: You can find additional information about the MySQL part at: Apr 09 11:50:03 host.itldc.com mariadb-prepare-db-dir[12162]: http://dev.mysql.com Apr 09 11:50:03 host.itldc.com mariadb-prepare-db-dir[12162]: Support MariaDB development by buying support/new features from MariaDB Apr 09 11:50:03 host.itldc.com mariadb-prepare-db-dir[12162]: Corporation Ab. You can contact us about this at sales@mariadb.com. Apr 09 11:50:03 host.itldc.com mariadb-prepare-db-dir[12162]: Alternatively consider joining our community based development effort: Apr 09 11:50:03 host.itldc.com mariadb-prepare-db-dir[12162]: http://mariadb.com/kb/en/contributing-to-the-mariadb-project/ Apr 09 11:50:03 host.itldc.com mysqld_safe[12241]: 170409 11:50:03 mysqld_safe Logging to '/var/log/mariadb/mariadb.log'. Apr 09 11:50:03 host.itldc.com mysqld_safe[12241]: 170409 11:50:03 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql Apr 09 11:50:05 host.itldc.com systemd[1]: Started MariaDB database server. |
Если тот или иной сервис должен быть запущен при старте операционной системы, следует это явно указать:
1 |
systemctl enable app.service |
Соответственно, если необходимо запретить запуск определенного сервиса, используем
1 |
systemctl disable app.service |
В том случае, если нужен список всех активных сервисов, выполняем команду:
1 2 3 4 5 6 |
# systemctl list-units --type=service UNIT LOAD ACTIVE SUB DESCRIPTION auditd.service loaded active running Security Auditing Service chronyd.service loaded active running NTP client/server crond.service loaded active running Command Scheduler .... |
Systemd также можно использовать для перезапуска, остановки системы и для запуска однопользовательского режима:
1 2 3 |
systemctl reboot systemctl poweroff systemctl rescue |
Мы перечислили только часть возможностей systemd. Желаете узнать больше? Смело переходите по ссылкам, указанным ниже: