Как просмотреть источник файла службы / модуля systemd
Передайте параметр cat следующим образом:
/lib/systemd/system/nginx.service Description=A high performance web server and a reverse proxy server Documentation=man:nginx(8) After=network.target Type=forking PIDFile=/run/nginx.pid ExecStartPre=/usr/sbin/nginx -t -q -g 'daemon on; master_process on;' ExecStart=/usr/sbin/nginx -g 'daemon on; master_process on;' ExecReload=/usr/sbin/nginx -g 'daemon on; master_process on;' -s reload ExecStop=-/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid TimeoutStopSec=5 KillMode=mixed WantedBy=multi-user.target |
/lib/systemd/system/nginx.service
# Stop dance for nginx
# =======================
#
# ExecStop sends SIGSTOP (graceful stop) to the nginx process.
# If, after 5s (—retry QUIT/5) nginx is still running, systemd takes control
# and sends SIGTERM (fast shutdown) to the main process.
# After another 5s (TimeoutStopSec=5), and if nginx is alive, systemd sends
# SIGKILL to all the remaining processes in the process group (KillMode=mixed).
#
# nginx signals reference doc:
# http://nginx.org/en/docs/control.html
#
Description=A high performance web server and a reverse proxy server
Documentation=man:nginx(8)
After=network.target
Type=forking
PIDFile=/run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t -q -g ‘daemon on; master_process on;’
ExecStart=/usr/sbin/nginx -g ‘daemon on; master_process on;’
ExecReload=/usr/sbin/nginx -g ‘daemon on; master_process on;’ -s reload
ExecStop=-/sbin/start-stop-daemon —quiet —stop —retry QUIT/5 —pidfile /run/nginx.pid
TimeoutStopSec=5
KillMode=mixed
WantedBy=multi-user.target
Советы и рекомендации
Программы настройки с графическим интерфейсом
systemadm — Графический поисковик юнитов systemd. Выводит список юнитов, возможна фильтрация по типу.
SystemdGenie — Утилита управления systemd на основе инструментов KDE.
Запуск сервисов после подключения к сети
Чтобы запустить сервис только после подключения к сети, добавьте такие зависимости в .service файле:
/etc/systemd/system/foo.service
... Wants=network-online.target After=network-online.target ...
Также должна быть включена служба ожидания сети того приложения, которое управляет сетью; только тогда будет соответствовать состоянию сети.
- В NetworkManager служба включается вместе с . Проверить состояние службы можно командой . Если служба не включена, то ещё раз.
- В случае netctl службу .
- Для пользователей systemd-networkd юнит включается вместе со службой ; проверьте это командой . Если нет, то .
Если служба отправляет DNS-запросы, она должна запускаться также после :
/etc/systemd/system/foo.service
... Wants=network-online.target After=network-online.target nss-lookup.target ...
Подробнее см. .
Чтобы цель работала как положено, должна быть служба, которая запускает её параметром и размещает себя перед ней (). Обычно это выполняет локальный .
Чтобы узнать, какие службы зависят от , выполните:
$ systemctl list-dependencies --reverse nss-lookup.target
Включение установленных юнитов по умолчанию
This article or section needs expansion.
Arch Linux поставляется с файлом , в котором указан параметр . Это означает, что systemctl preset отключает по умолчанию юниты и пользователь должен сам их включать после установки пакетов.
Если такое поведение не устраивает, создайте символическую ссылку на для переопределения файла конфигурации. Это заставит systemctl preset включать юниты новых пакетов — вне зависимости от типа — кроме указанных в других файлах из каталога настроек systemctl preset. Пользовательских юнитов это не касается. Подробнее смотрите .
Примечание: Политика включения всех юнитов по умолчанию может привести к проблемам, если в установленном пакете находится несколько взаимоисключающих юнитов. В этом случае в файле preset-настроек придётся явно указать, какие юниты включаться не должны. Подробнее смотрите .
Песочница для приложений
Юнит может быть использован в качестве песочницы для изоляции приложений и их процессов в виртуальном окружении. Systemd использует механизм namespaces, белые и чёрные списки capabilities, а также control groups для контейнеризации процессов при помощи настраиваемых окружений — см. .
Добавление к существующему юниту systemd функциональности песочницы обычно происходит методом проб и ошибок вкупе с использованием различных инструментов логирования — , и . В таких случаях имеет смысл предварительно поискать соответствующую документацию от разработчиков. В качестве отправной точки для поиска путей повышения безопасности изучите вывод команды:
$ systemd-analyze security юнит
Рекомендации по созданию песочницы с помощью systemd:
- Параметр определяет список разрешённых capabilities, но с его помощью можно также и запрещать некоторые capabilities для определённого юнита.
Уведомление о неработающих службах
Для уведомления о неудачном запуске службы используется директива в соответствующем файле службы или . Чтобы эта директива возымела эффект для всех служб одновременно, её необходимо добавть в drop-in файл верхнего уровня, см. .
Создайте drop-in верхнего уровня:
/etc/systemd/system/service.d/toplevel-override.conf
OnFailure=failure-notification@%n
Это добавит строку в файл каждой службы. Если какой-то_юнит завершится с ошибкой, запустится экземпляр службы для создания уведомления (или любой другой задачи, которая была назначена).
Создайте юнит-шаблон :
/etc/systemd/system/[email protected]
Description=Send a notification about a failed systemd unit After=network.target Type=simple ExecStart=/путь/к/failure-notification.sh %i
После этого создайте сценарий , в котором определите, каким именно способом будет создаваться уведомление (mail, gotify, xmpp). Параметр будет заменён на название неудачно завершившегося юнита и будет передан сценарию в качестве аргумента.
Чтобы предотвратить регрессию экземпляров , создайте пустой файл drop-in настроек с именем, совпадающим с названием drop-in файла верхнего уровня (пустой файл «уровня служб» будет иметь приоритет над файлом «верхнего уровня»):
# mkdir -p /etc/systemd/system/[email protected] # touch /etc/systemd/system/[email protected]/toplevel-override.conf
Руководство по устранению NET::ERR_CERT_AUTHORITY_INVALID
Способ №1 Корректировка даты и времени на компьютере
Сетевая ошибка NET::ERR_CERT_AUTHORITY_INVALID могла возникнуть в результате неправильно выставленных даты и времени на компьютере пользователя. Вспомните, не меняли ли вы не так давно дату и время на своем ПК? Если ответ «да», то вам нужно вернуться обратно в настройки даты и времени, а затем выставить корректные значения для вашего региона.
Способ №2 Принудительный переход на нужный сайт
В любом случае, вы всегда можете обойти ошибку NET::ERR_CERT_AUTHORITY_INVALID, попросту принудительно выполнив переход на нужный вам сайте. Данный способ рекомендуется к применению особенно в том случае, если вы уверены в безопасности сайта. Чтобы выполнить принудительный переход на нужный сайт, вам потребуется сделать следующее:
Стоит заметить, что на более старых версиях Google Chrome вам и вовсе не придется нажимать на дополнительную кнопку: вам просто понадобится нажать на кнопку «Все равно перейти», которая расположена непосредственно на страничке с ошибкой.
Однако, мы настоятельно рекомендуем вам ни в коем случае не переходить принудительно на сайты, в безопасности которых вы не уверены на сто процентов. Ошибка NET::ERR_CERT_AUTHORITY_INVALID возникла при переходе на неизвестный сайт – доверьтесь вашему браузеру и не переходите на него.
Способ №3 Модификация адреса сайта
Существует среди пользователей достаточно эффективный способ по обходу ошибки NET::ERR_CERT_AUTHORITY_INVALID, суть которого заключается в небольшой модификации адреса сайта в адресной строке. Например, если адрес нужного вам сайта начинается с «https», то попробуйте изменить это начало на «http». Как только выполните изменение, перейдите на сайт снова. Порой, ошибка может отступить, а порой – нет.
Способ №4 Отключение антивируса
Как утверждают некоторые пользователи, ошибка NET::ERR_CERT_AUTHORITY_INVALID – хоть и в редких случаях – может быть результатом работы установленного в вашей системе антивируса. Чтобы проверить догадку о блокировке сайта антивирусом, его достаточно просто отключить на время. Попробуйте отключить также и системный антивирус в лице Защитника Windows, если вы пользуетесь только его услугами.
Способ №5 Игнорирование предупреждения
Вы запросто можете отключить сообщения о сетевых ошибках с сертификатами сайтов, если того пожелаете. Чтобы сделать это, вам нужно выполнить следующее:
Попробуйте запустить Google Chrome через этот ярлычок и перейдите на нужный вам сайт. Если вы сделали все корректно, то ошибка NET::ERR_CERT_AUTHORITY_INVALID исчезнет. Тем не менее мы не рекомендуем вам постоянно использовать этот ярлык для странствий по Интернету, так как вы вполне можете наткнуться на небезопасный сайт, но узнать вы об этом не сможете вследствие игнорирования ошибок с сертификатами.
Способ №6 Очистка кэша и данных
Некоторые проблемы с браузером могут зачастую возникать из-за кэша и других данных, накопленных в нем за время пользования. К счастью, вы запросто можете очистить его от них, воспользовавшись функцией в настройках браузера Google Chrome. Чтобы очистить кэш и данные, сделайте следующее:
Как только вы очистите свой Google Chrome от кэша и прочих данных, скопившихся за его время пользования, попробуйте снова перейти на нужный вам сайт. Возможно, ошибка NET::ERR_CERT_AUTHORITY_INVALID была устранена.
Способ №7 Деактивация расширений
Многие пользователи устанавливают в свой браузер огромное количество всевозможных расширений, которые улучшают опыт от серфинга в Интернете. Однако, стоит заметить, что в некоторых случаях – хоть и крайне редко – расширения могут вызывать кучу проблем для пользователя. Ошибка NET::ERR_CERT_AUTHORITY_INVALID могла была вызвана как раз работой некоторых расширений. Вам нужно попробовать отключить расширения, а затем проверить, исчезнет ли ошибка.
Способ №8 Переустановка браузера
И последнее решение – переустановка браузера. Возможно, некоторые файлы вашего Google Chrome были повреждены вследствие какого-то события в операционной системе или воздействия стороннего программного обеспечения. Как альтернатива переустановке, вы можете попробовать сбросить параметры браузера с помощью специальной функции в его в настройках. Как только переустановите – или сбросите параметры – браузер, попробуйте снова перейти на нужный сайт и проверьте, была ли устранена ошибка NET::ERR_CERT_AUTHORITY_INVALID.
Обслуживание журналов
Вам может быть интересно, сколько места занимают все эти данные, которые мы уже видели. Более того, вы можете захотеть удалить какие-либо старые журналы и освободить место.
Удаление старых журналов
Если вы хотите сократить размер журнала, вы можете использовать для этого два разных способа (доступных в версии 218 или выше).
Если вы используете опцию , вы можете сократить журнал, указав размер. При использовании этой опции старые записи будут удаляться, пока занимаемое журнальной системой место на диске не сократится до требуемого размера:
Также можно сократить размер журнала, указав время отсечки с помощью . Любые записи вне этого времени удаляются. Эта опция позволяет сохранить записи, созданные после истечения определенного времени.
Например, чтобы сохранить записи с прошлого года, вы можете ввести:
Ограничение расширения журналов
Вы можете настроить свой сервер так, чтобы ограничить место, занимаемое журнальной системой. Для этого следует отредактировать файл .
Для ограничения роста занимаемого журнальной системой объема можно использовать следующие элементы:
- : указывает максимальное пространство на диске, которое может использоваться журнальной системой.
- : указывает пространство на диске, которое журнальная система должна оставлять свободным при добавлении записей в журналы.
- : определяет, до какого размера могут увеличиваться большие файлы журнала на диске до ротации.
- : указывает, сколько места на диске может использоваться для временного хранения (в filesystem).
- : указывает, сколько места на диске следует оставлять на диске для других целей при записи данных во временное хранилище (в файловой системе ).
- : указывает, сколько места может занимать отдельный файл журнала во временном хранилище (в файловой системе ) до ротации.
Задавая эти значения, вы можете контролировать, сколько места на вашем сервере использует . Помните, что и будут применяться к архивным файлам для достижения заданных ограничений
Это важно помнить при интерпретации подсчета файлов после операции вакуумной очистки
Другие люди также замечают вашу химию
Наконец, не стоит недооценивать проницательность ваших друзей и членов семьи
Они часто оказываются прекрасно осведомленными о вашем увлечении – и, что еще более важно, о том, как это влияет на вас и вашего возлюбленного человека. Они видят, как вы флиртуете, как по-особенному спорите и то, какое странное напряжение создается между собой, когда вы оба пытаетесь выяснить чувства друг друга
Обычно от бдительного взгляда ваших близких людей не ускользают даже такие еле заметные вещи, как слишком продолжительные объятия и пожимание рук.
Однако не стоит забывать, что химия срабатывает лучше всего, если вы чувствуете уверенность в себе и своей собственной жизни. Если вам кажется, что вы слишком неуклюжи или застенчивы, попробуйте больше общаться с разными людьми. Со временем вы освоите искусство флирта, и ваше общение с понравившемся человеком будет проходить легко, естественно и весело!
Автозапуск
Подсистему systemd также можно использовать для автозапуска сервисов или скриптов. Для этого в каталоге /usr/lib/systemd/system создаем юнит (файл) с расширением .service. Подробнее разберем на примере сервиса bind:
vi /usr/lib/systemd/system/named.service
Содержимое может быть следующего содержания:
Description=Berkeley Internet Name Domain (DNS)
Wants=nss-lookup.target
Wants=named-setup-rndc.service
Before=nss-lookup.target
After=network.target
After=named-setup-rndc.service
Type=forking
Environment=NAMEDCONF=/etc/named.conf
EnvironmentFile=-/etc/sysconfig/named
Environment=KRB5_KTNAME=/etc/named.keytab
PIDFile=/run/named/named.pid
ExecStartPre=/bin/bash -c ‘if ; then /usr/sbin/named-checkconf -z «$NAMEDCONF»; else echo «Checking of zone files is disabled»; fi’
ExecStart=/usr/sbin/named -u named -c ${NAMEDCONF} $OPTIONS
ExecReload=/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
WantedBy=multi-user.target
* как правило, файл разделен на 3 части:
- Unit — позволяет определить метаданные для юнита.
- Service — раздел для основной конфигурации юнита.
- Install — определение поведения для юнита при его включении или отключении.
Подробнее можно почитать о структуре и возможных опциях на странице https://linux-notes.org/pishem-systemd-unit-fajl/
После внесения изменений и сохранения файла, необходимо перечитать изменения командой:
systemctl daemon-reload
Теперь можно разрешить автозапуск:
systemctl enable named
Редактирование сервисов
Если мы хотим внести изменения в юнит-файл сервиса, который был установлен с последним, необходимо использовать drop-in файл или файл переопределения настроек. В противном случае, после обновления программы наши изменения могут быть удалены.
И так, мы для примера взяли юнит для bind. Чтобы создать для него drop-in файл, вводим:
systemctl edit named
И вносим, например, такие изменения:
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
В чем разница между 127.0.0.1 и Localhost?
Нет реальной разницы между 127.0.0.1 и localhost. Некоторым программам может нравиться одна над другой, но обе они указывают на одно и то же местоположение: ваш компьютер.
Вы можете представить localhost как «имя» для адреса 127.0.0.1, так же, как «www.google.com» является «именем» для IP-адреса Google. Однако, когда вы посещаете www.google.com, он должен пройти через DNS-сервер, чтобы ваш компьютер мог определить, какой IP-адрес соответствует имени.
Localhost не нужен DNS-сервер, потому что ваш компьютер уже знает, что это означает, что вы хотите подключиться к нему. Таким образом, вы можете использовать localhost, даже если у вас нет подключения к интернету.
Что такое systemd?
systemd — это набор базовых строительных блоков для системы Linux. Он предоставляет диспетчер систем и служб, который работает как PID 1 и запускает остальную часть системы. systemd предоставляет агрессивные возможности распараллеливания, использует активацию сокетов и D-Bus для запуска служб. Предлагает запуск демонов по требованию, отслеживает процессы, использующие группы управления Linux. Поддерживает точки монтирования и автоматического монтирования. Реализует сложную логику управления службами на основе транзакционных зависимостей. systemd поддерживает сценарии SysV и LSB init и работает как замена для sysvinit. Другие части включают демон ведения журнала, утилиты для управления базовой конфигурацией системы. В него входит: имя хоста, дата, локаль, ведение списка зарегистрированных пользователей и запущенных контейнеров. А также виртуальных машин, системные учетные записи, каталоги времени выполнения и параметры. Не забудем о демонах управления простой конфигурацией сети, синхронизацией сетевого времени, пересылкой журналов и разрешением имен.
unitd работает с сервисами описанными в своей конфигурации. Основой для создания сервиса служит юнит (unit) — это текстовый файл с описанием на подобии ini файла в системе windows. Конфигурационный файл состоит из секций. Внутри каждой секции указываются необходимые параметры. Обязательными во всех юнитах являются две секции, остальные используются в зависимости от типа юнита.
Настройка системы
Во-первых SELinux отключен не полностью. Для полного отключения добавляем строку в файл /etc/selinux/config:
Во-вторых, проверка файловых систем тоже может занять некоторое время. Оставляем проверку на ошибки только для корня. Для этого откройте файл /etc/fstab и приведите строчку для корня к такому виду:
Последний параметр отвечает за проверку, 1 — проверять, 0 — не проверять. Установите для всех других разделов 0. К тому же boot раздел лучше монтировать по требованию. Для этого изменяем его запись:
Затем давайте перенесем папку /tmp в оперативную память, чтобы уменьшить количество операций на жестком диске:
Сравнение SysV и systemd
Функции | SysV | systemd |
Зависимость D-Bus | Нет | Да |
Управление устройствами с помощью udev | Нет | Да |
Активация по таймеру | cron/at | Проприетарная |
Управление квотами | Нет | Да |
Автоматическая обработка зависимостей служб | Нет | Да |
Завершение процессов пользователей при выходе из системы | Нет | Да |
Управление пространством подкачки | Нет | Да |
Интеграция SELinux | Нет | Да |
Поддержка шифрованных HDD | Нет | Да |
Загрузка статических модулей ядра | Нет | Да |
Графический интерфейс пользователя (GUI) | Нет | Да |
Перечисление всех дочерних процессов | Нет | Да |
Совместимость с SysV | Да | Да |
Интерактивная загрузка | Нет | Да |
Переносимость на отличную от x86 архитектуру процессора | Да | Нет |
Параллельный запуск служб | Нет | Да |
Ограничение ресурсов для каждой службы | Нет | Да |
Легко расширяемый скрипт автозагрузки | Да | Нет |
Раздельные код и файл конфигурации | Да | Нет |
Автоматический расчет зависимостей | Нет | Да |
Подробный вывод отладочной информации | Да | Нет |
Количество файлов | 75 файлов | 900 файлов + Glib + D-Bus |
Что делать, если вы получили предостерегающие знаки
Всегда помните о том, что не все и не всегда из вышеперечисленного непременно является знаком свыше. Вы можете попасть в пробку или лишиться сна по совершенно объяснимым причинам. И то, что вы оступились и с размаху ударились большим пальцем ноги о тумбочку, не обязательно означает, что вы сбились с пути.
Однако когда в вашу жизнь приходит сразу несколько таких знаков (все вместе, либо же один за другим), это никогда нельзя отметать, как что-то малозначимое. Спросите у себя: «Не может ли что-то из того, что я делаю, думаю или планирую прямо сейчас, идти вразрез с моим предназначением и нести мне вред в долгосрочной перспективе»?
В зависимости от того, насколько полно и четко вы воспринимаете окружающий мир, предостерегающие знаки Вселенной могут варьироваться от легкого поглаживания по плечу до вырастающей на жизненном пути стены трехметровой высоты, в которую вы влетаете головой.
Если вы чувствуете, что вы получаете от Вселенной предостерегающие знаки, то вместо того, чтобы не находить себе места от беспокойства или «накручивать» себя, будьте активны и деятельны. Иногда для того, чтобы повернуть на верный путь, от вас требуется лишь минимальное приложение усилий. В других же случаях приходится напряженно работать, тщательно обдумывая планы или намерения. Но в любом случае вы можете это сделать.
Вот несколько советов, которые помогут вернуться на предназначенный жизненный путь:
1. Чтобы понять, действительно ли вы вступили на неправильный путь, настройтесь на вашу интуицию. Вглядитесь в свою душу и спросите себя: «На правильном ли я пути?» После этого внимательно следите за чувствами и ощущениями, появляющимися в теле. К примеру, если на этот вопрос тело отзывается внезапным чувством тяжести, это является однозначным признаком того, что вам нужно что-то менять. Если же ответом на него является ощущение легкости и чувство радости, то, скорее всего, жизнь движется именно туда, куда нужно.
2. Сделайте глубокий вдох, и поблагодарите за Вселенную предостережения. Вы можете даже вознести ей небольшую молитву с просьбой направить на правильный путь, как это делаю я. Эта молитва может быть, к примеру, такой: «Дорогая Вселенная, прошу тебя, помоги мне понять, что мне нужно изменить в своей жизни. Направь мои поступки в нужную сторону, и не дай мне свернуть на неверный путь. Помоги мне быть честным, открытым и готовым к новому. Покажи, какие шаги нужно сделать, потому что не справлюсь со всем этим без тебя».
3. Проведите какое-то время наедине с собой, и подумайте над своей жизнью и тем, что бы хотелось в ней изменить. Возьмите дневник и запишите свои размышления (это помогает привести в порядок мысли).
4. Подойдите с юмором к случившемся (если, конечно, это возможно). Юмор – это отличный способ открыть ваше сердце. Иногда Вселенная посылает невероятно смешные знаки для того, чтобы мягко взбодрить и пробудить нас.
5. Медитируйте, чтобы очистить ваш разум.
6
Если вы никак не можете понять, что именно следует изменить в жизни, обратите внимание на контекст. Подумайте над тем, что думали, делали или планировали, когда заметили несколько из этих знаков?
И, наконец, всегда помните о том, что вы и Вселенная – это вовсе не отдельные сущности, пересекающиеся лишь изредка. На самом деле вы и есть Вселенная, и те знаки, которые видите вокруг себя, порождены извечной сущностью, лежащей в основе всего, чем и кем являетесь вы. И хотя вам может показаться, что вас ведет что-то куда больше и мудрее вас, на самом деле ваша душа тоже является частью этого большого и благожелательного сознания.
Что такое 127.0.0.1?
127.0.0.1 известен как адрес обратной связи, но вы можете увидеть его под именем «localhost». Когда вы указываете браузер на 127.0.0.1, он пытается подключиться к компьютеру, который вы используете прямо сейчас. Это удобно, когда вы хотите подключиться к серверу на своем компьютере.
127.0.0.1 является особенным среди IP-адресов. Как правило, IP-адрес является уникальным для каждого компьютера как в локальной сети, так и в Интернете. 127.0.0.1, однако, всегда указывает на компьютер, который вы используете в данный момент, несмотря ни на что.
Например, если вы настроили сервер на компьютере A, вы можете подключиться к нему, посетив 127.0.0.1 на компьютере A. Однако, если вы перейдете на компьютер B и введете 127.0.0.1, вы вместо этого подключитесь к компьютеру B A. Для подключения к нему с компьютера B. вам потребуется интернет-адрес компьютера A или локальная сеть.
Утилита systemctl
В Systemd есть специальный инструмент для управления службами в Linux — systemctl. Эта утилита позволяет делать очень много вещей, начиная от перезапуска службы linux и проверки ее состояния, до анализа эффективности загрузки службы. Синтаксис у утилиты такой:
$ systemctl опции команда служба служба…
Опции настраивают поведение программы, подробность вывода, команда — указывает что нужно сделать со службой, а служба, это та самая служба, которой мы собираемся управлять. В некоторых случаях утилита может использоваться без указания команды и службы.
Рассмотрим все по порядку. Опции очень сильно зависят от команд, поэтому рассмотрим их позже, а пока пройдемся по командах:
- list-units — посмотреть все службы (юниты), аналог опции -t
- list-sockets — посмотреть все службы сокетов
- start — запустить службу linux
- stop — остановить службу linux
- reload — обновить конфигурацию службы из файла юнита
- restart — перезапустить службу
- try-restart — перезапустить службу, только если она запущена
- reload-or-restart — обновить конфигурацию затем выполнить перезапуск службы linux, если не поддерживается — только перезапустить
- isolate — запустить только одну службу вместе с ее зависимостями, все остальные остановить
- kill — отправить сигнал завершения процессу используется вместе с опциями —signal и —kill-who
- is-active — проверить запущена ли служба linux
- is-failed — проверить не завершилась ли служба с ошибкой
- status — посмотреть состояние и вывод службы
- show — посмотреть параметры управления службой в Linux
- reset-failed — перезапустить службы linux, завершившиеся с ошибкой
- list-dependencies — посмотреть зависимости службы linux
- list-unit-files — вывести все установленные файлы служб
- enable — добавить службу в автозагрузку
- disable — удалить службу из автозагрузки
- is-enabled — проверить если ли уже служба в автозагрузке
- reenable — сначала выполнить disable потом enable для службы
- list-jobs — все запущенные службы linux независимо от типа
- snapsot — сохранить состояние служб, чтобы потом восстановить
- daemon-reload — обновить конфигурацию всех служб
- mask — сделать юнит недоступным
- unmask — вернуть файл службы linux
А теперь основные опции:
- -t, —type — тип служб для вывода
- -a, —all — показать все известные службы, даже не запущенные
- -q — минимальный вывод
- —version — версия программы
- —no-pager — не использовать постраничную навигацию
- —no-legend — не выводить подробное описание
- -f — принудительное выполнение команды
- —runtime — не сохранять вносимые изменения после перезагрузки
- -n — количество строк вывода лога для команды status
- —plain — использовать обычный текстовый режим вместо деревьев
- —kill-who — задать процесс, которому нужно отправить сигнал
- —signal — сигнал, который нужно отправить.
- —state — отфильтровать список служб по состоянию.
Как видите, опции будут мало полезны и лучше обратить больше внимания на команды, с помощью них выполняются все действия.
Основы управления юнитами
Базовыми компонентами, которыми управляет systemd, являются юниты (unit). Существует множество типов юнитов; самым распространённым типом является сервис (файлы с расширением .service). основным инструментом для управления сервисами является команда systemctl.
Команда systemctl имеет свой эквивалент для каждой стандартной команды системы инициализации. В качестве примера рассмотрим файл nginx.service.
Примечание: Чтобы получить этот файл, установите Nginx.
Чтобы запустить сервис, введите:
Чтобы остановить сервис:
Перезапустить сервис можно так:
Чтобы выполнить перезагрузку, не прерывая работы, введите:
Включение и отключение юнитов
По умолчанию большинство юнитов systemd не запускается автоматически. Чтобы настроить автозапуск юнита, нужно его включить. Это соединит юнит с определённым целевым компонентом, и тогда юнит будет запускаться вместе с ним.
Чтобы настроить автозапуск сервиса, введите:
Чтобы отключить сервис:
Добавьте в автозапуск
Сервер иногда приходится перезапускать из-за обновления ПО и изменения настроек. Иногда владелец сервера, который вы арендуете, сам его выключает на пару минут, чтобы обносить софт, закрыть свежие уязвимости, и самостоятельно перезапускает сервер. Такое бывает даже на крупных хостингах, они отключают сервер всего на пару секунд и прислают письма с извинениями на почту.
Проверьте, что станет с сайтом если сервер перезагрузится. Перезагрузите сервер с помощью команды:
Проверьте сайт в браузере:
Сайт снова перестал работать
Это потому что вы не сказали запускать ваш файл, если сервер включается или перезагружается. Это можно исправить:
Строка Означает блок настроек при запуске юнита. В этом блоке мы добавили одну настройку: .
Таргет — это группа процессов, которые запустятся вместе, пачкой. — это таргет, который запускается сразу при старте сервера. Получается, что настройка добавляет ваш юнит в таргет, который запустится при рестарте сервера.
Осталась последняя команда, чтобы всё заработало. Она включит ваш юнит в список автозагрузки. Введите команду:
Эта команда создаёт симлинк вашего юнита. Симлинк — это прямая ссылка на файл, что-то вроде ярлыка в Windows. Теперь, если вы захотите убрать ваш файл из автозагрузки, то будет достаточно написать . Это удобно, потому что не надо лезть в файл юнита и чего-то исправлять, всё отключается одной командой.
Теперь снова перезагрузите сервер с помощью команды и проверьте свой сайт в браузере. Он должен быть запущен, даже после перезагрузки.
Мониторинг активных процессов
Команда имитирует, сколько администраторов используют для мониторинга активных процессов или недавней активности. Эта функция встроена в , обеспечивая доступ к этим возможностям без подключения другого инструмента.
Отображение последних журналов
Чтобы вывести указанное количество записей, вы можете использовать опцию , которая работает как .
По умолчанию отображается 10 последних записей:
Вы можете указать желаемое количество записей, задав число после :
Наблюдение за журналами
Для активного наблюдения за журналами по мере их пополнения можно использовать флаг . Это будет работать именно так, как можно ожидать, если у вас есть опыт использования :
Управление службами
Основополагающая цель системы инициализации заключается в инициализации компонентов, которые должны запускаться после загрузки ядра Linux (традиционно называются компоненты пользовательского пространства). Система инициализации также используется для управления службами и демонами для сервера и в любой момент времени работы системы. С учетом этого мы начнем с нескольких базовых операций по управлению службами.
В целью большинства действий являются «модули», являющиеся ресурсами, которыми знает, как управлять. Модули распределяются по категориям по типу ресурса, который они представляют, и определяются файлами, известными как файлы модулей. Тип каждого модуля можно вывести из суффикса в конце файла.
Для задач по управлению службами целевым модулем будут модули службы, которые имеют файлы модулей с суффиксом . Однако для большинства команд по управлению службами вы можете не использовать суффикс , поскольку достаточно умна, чтобы знать, что вы, возможно, хотите работать со службой при использовании команд по управлению службами.
Запуск и остановка служб
Как мы уже упомянули выше, будет искать файлы для команд управления службами, так что команду можно легко ввести следующим образом:
Хотя вы можете использовать вышеуказанный формат для общего администрирования, для ясности мы будем использовать суффикс для остальных команд, чтобы предельно четко выражать цель, над которой мы работаем.
Чтобы остановить работающую в данный момент службу, можно использовать команду :
Перезапуск и перезагрузка
Чтобы перезапустить работающую службу, можно использовать команду :
Если данное приложение может перезагрузить файлы конфигурации (без перезапуска), вы можете выдать команду для инициализации этого процесса:
Если вы не уверены, есть ли у службы функция перезагрузки своей конфигурации, можно использовать команду . Это перезагрузит необходимую конфигурацию при наличии. В противном случае будет перезагружена служба для выбора новой конфигурации:
Включение и отключение служб
Указанные выше команды полезны для запуска или остановки служб во время текущего сеанса. Чтобы дать команду автоматически запускать службы при загрузке, их необходимо включить.
Для запуска службы во время загрузки используйте команду :
При этом будет создана символическая ссылка из системной копии служебного файла (обычно в или ) в месте на диске, где ищет файлы для автозапуска (обычно ; что такое цель, мы рассмотрим далее в этом руководстве).
Чтобы отключить автоматический запуск службы, можно ввести следующее:
При этом будет удалена символическая ссылка, что укажет на то, что служба не должна запускаться автоматически.
Помните, что включение службы не запустит ее в текущем сеансе. Если вы хотите запустить службу и включить ее при загрузке, необходимо дать обе команды, и .
Проверка статуса служб
Чтобы проверить статус службы в вашей системе, можно использовать команду :
При этом вы получите статус службы, иерархию контрольных групп и первые несколько строк журнала.
Например, при проверке статуса сервера Nginx вы можете видеть следующий вывод:
Это дает вам хороший обзор текущего статуса приложения и уведомляет о наличии каких-либо проблем или необходимости выполнения каких-либо действий.
Также есть методы для проверки определенных статусов. Например, чтобы проверить, активен ли (работает ли) модуль в данный момент, можно использовать команду :
Это вернет текущий статус модуля, который обычно или . Код выхода будет «0», если он активен, и результат будет проще парсить в скрипты оболочки.
Чтобы увидеть, включен ли модуль, можно использовать команду :
Это выведет информацию о том, что служба или , и снова установит код выхода на «0» или «1» в зависимости от вопроса команды.
Третья проверка заключается в проверке того, находится ли модуль в состоянии сбоя. Это означает, что была проблема, которая запустила данный модуль:
Это вернет , если он работает должным образом, или , если возникла ошибка. Если модуль был намеренно остановлен, может вернуться или . Статус выхода «0» означает, что произошел сбой, а статус выхода «1» указывает на какой-либо другой статус.