Основные команды 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. Желаете узнать больше? Смело переходите по ссылкам, указанным ниже: