Replacing rc.local in systemd linux systems

Автозагрузка в linux

Отключение автозапуска при помощи сторонних программ

Менеджеров автозагрузки не так уже и много. Рекомендуем использовать для управления автозапуском в Андроид многофункциональную программу «All-In-One Toolbox». Позиционируется она как чистильщик и оптимизатор производительности, но в ее арсенале также имеется неплохой инструмент, позволяющий удалять из автозагрузки не только пользовательские, но и некоторые системные приложения.

Чтобы воспользоваться данной функцией, необходимо прокрутить окно «All-In-One Toolbox» немного вниз и нажать там вкладку «Автозагрузка». Этот же компонент доступен в разделе наиболее часто используемых инструментов. Программа просканирует устройство на предмет установленного ПО и выведет его список, в котором напротив каждого приложения будет расположен переключатель. Поставьте его в положение «Disabled», и выбранное приложение удалится из автозагрузки.

Операционные системы Astra Linux

Оперативные обновления и методические указания

Операционные системы Astra Linux предназначены для применения в составе информационных (автоматизированных) систем в целях обработки и защиты 1) информации любой категории доступа 2) : общедоступной информации, а также информации, доступ к которой ограничен федеральными законами (информации ограниченного доступа).

1) от несанкционированного доступа; 2) в соответствии с Федеральным законом от 27.07.2006 № 149-ФЗ «Об информации, информационных технологиях и о защите информации» (статья 5, пункт 2).

Операционные системы Astra Linux Common Edition и Astra Linux Special Edition разработаны коллективом открытого акционерного общества «Научно-производственное объединение Русские базовые информационные технологии» и основаны на свободном программном обеспечении. С 17 декабря 2019 года правообладателем, разработчиком и производителем операционной системы специального назначения «Astra Linux Special Edition» является ООО «РусБИТех-Астра».

На web-сайтах https://astralinux.ru/ и https://wiki.astralinux.ru представлена подробная информация о разработанных операционных системах семейства Astra Linux, а также техническая документация для пользователей операционных систем и разработчиков программного обеспечения.

Мы будем признательны Вам за вопросы и предложения, которые позволят совершенствовать наши изделия в Ваших интересах и адаптировать их под решаемые Вами задачи!

Репозитория открытого доступа в сети Интернет для операционной системы Astra Linux Special Edition нет. Операционная система распространяется посредством DVD-дисков.

Информацию о сетевых репозиториях операционной системы Astra Linux Common Edition Вы можете получить в статье Подключение репозиториев с пакетами в ОС Astra Linux и установка пакетов.

В целях обеспечения соответствия сертифицированных операционных систем Astra Linux Special Edition требованиям, предъявляемым к безопасности информации, ООО «РусБИтех-Астра» осуществляет выпуск очередных и оперативных обновлений.

Очередные обновления (версии) предназначены для:

Оперативные обновления предназначены для оперативного устранения уязвимостей в экземплярах, находящихся в эксплуатации, и представляют собой бюллетень безопасности, который доступен в виде:

Ввиду совершенствования нормативно-правовых документов в области защиты информации и в целях обеспечения соответствия информационных актуальным требованиям безопасности информации, а также обеспечения их долговременной эксплуатации, в том числе работоспособности на современных средствах вычислительной техники, рекомендуется на регулярной основе планировать проведение мероприятий по применению очередных и оперативных обновлений операционной системы.

Пишем systemd Unit файл

Первое что стоит сделать — так это проверить инициализацию:

# ps -s1| awk '{print $4}'| grep -Ev "CMD"

PS: Вот небольшая статья:

Файлы шаблонов блоков могут быть определены, потому что они содержат символ @ после имени базового блока и перед суффиксом блокового типа. Имя файла блока с шаблоном может выглядеть следующим образом:

my_test@.service

Из созданного блока ( что выше) можно создать экземпляр др блока, который выглядит следующим образом:

my_test@instance1.service

Мощность файлов шаблонных модулей в основном проявляется благодаря возможности динамически подставлять соответствующую информацию в определение устройства в соответствии со средой (ENV). Это делается путем установки директив в файл шаблона как обычно, но заменяя определенные значения или части значений спецификаторами переменных.

Ниже приведены некоторые из наиболее распространенных спецификаторов, которые будут заменены, когда юнит-экземпляра интерпретируется с соответствующей информацией:

  • %n: В любом месте, где это используется, будет добавлено полное имя элемента.
  • %N: Это то же самое, что и выше, но любое экранирование, такое как те, что присутствуют в шаблонах пути файла, будет отменено.
  • %p: Это указывает префикс имени юнита. Это часть названия юнита, которая предшествует символу @.
  • %P: Это то же самое что и выше, но с любым отступлением.
  • %i: Это ссылается на имя экземпляра, которое является идентификатором, следующим за @ в экземпляре. Это один из наиболее часто используемых спецификаторов, поскольку он динамичный. Использование этого идентификатора поощряет использование значимых идентификаторов конфигурации. Например, порт, в котором будет выполняться служба, может использоваться как идентификатор экземпляра, и шаблон может использовать этот спецификатор для настройки спецификации порта.
  • %I: Этот спецификатор такой же, как и выше, но с любым отступлением.
  • %f: Это будет заменено на имя неэкранированного юнита или имя префикса, добавленное к «/».
  • %c: Это будет указывать на управляющую группу устройства со стандартной родительской иерархией /sys/fs/cgroup/ssytemd.
  • %u: Имя пользователя, настроенного для запуска юнита.
  • %U: То же, что и выше, UID вместо имени.
  • %H: Имя хоста системы, на котором выполняется юнит.
  • %%: Это используется для вставки буквенного знака процента.

Используя приведенные выше идентификаторы в шаблоне файла, Systemd заполнит правильные значения при интерпретации шаблона для создания юнит-экземпляра.

.bashrc: автозапуск скриптов при запуске терминала

Если вам требуется выполнять какие-то действия при запуске терминала ssh, вы можете добавить любую команду или выполнение скрипта в .bash_profile или .bashrc. Теоретически, вы можете добавить какое-либо действие в любой из этих файлов, оно выполнится в любом случае. Обычно все необходимое добавляется в .bashrc, а сам .bashrc запускают из .bash_profile.

Я добавил в файл .bashrc команду на рестарт веб-сервиса nginx:

service nginx restart

После этого сохранил файл и перезапустил терминал:

Как видите, при запуске терминала, веб-сервер был перезапущен. Какие действия можно выполнять при запуске терминала? Вероятно, запускать какие-то вспомогательные утилиты, например, проверка uptime сервера:

Или вы хотите, чтобы при запуске терминала, вы сразу попадали в нужную вам директорию и запускали mc, добавьте в .bashrc

Надеюсь эта статья по управлению автозапуском сервисов и скриптов в LInux (статья писалась для CentOS) оказалась полезной для вас. Наверняка тем, кто только познает азы системного администрирования Linux, это информация будет кстати.

Иногда пользователи могут столкнуться с необходимостью добавления каких-то сервисов или событий в автозагрузку Linux системы (Ubuntu, Debian, CentOS, Gentoo, Alpine Linux и так далее), но не всегда удается сделать это встроенным в графическую среду средствами (например Startup Applications в Ubuntu). То, как сделать простой скрипт и добавить его запуск при инициализации системы будет рассказано ниже.

sudo nano /etc/init.d/odchub

В текстовом редакторе введите три строки будущего скрипта:

После того как файл создан, сделаем его исполняемым:

sudo chmod +x /etc/init.d/odchub

Теперь добавим созданный скрипт к автозагрузке. Для этого есть несколько способов, опишем два наиболее встречающихся.

Если вывод команды:

sudo nano /etc/systemd/system/odchub.service

В текстовом редакторе скопируйте следующие строки в этот файл:

Description=Opendchub service After=network.target ExecStart=/etc/init.d/odchub WantedBy=multi-user.target

После сохранения файла юнита вы можете использовать созданную службу odchub, например, стартовать (единократно выполнить написанный нами скрипт):

sudo systemctl start odchub

sudo systemctl enable odchub

Для удаления созданной таким образом службы, достаточно пары команд:

sudo systemctl disable odchub sudo rm /etc/systemd/system/odchub.service

После того как создан исполняемый скрипт в соответствующей директории (в нашем случае /etc/init.d/odchub), для включения его при загрузках системы, достаточно выполнить команду:

sudo update-rc.d odchub defaults 90

Числовое значение после слова defaults указывает на приоритет для старта этого скрипта.

В результате этих действий сервис opendchub будет запускаться еще до загрузки графической среды, сразу вместе с инициализацией операционной системой. Если вы захотите удалить этот скрипт из автозагрузки, то перед тем как удалить сам файл надо выполнить такую команду:

sudo update-rc.d -f odchub remove

Используя эти простые примеры вы можете аналогичным образом создать свой собственный скрипт и добавить его к автозагрузке.

12 Comments Leave a comment

Огромное спасибо. очень пригодилось для автоматического монтирования расшаренного диска в виртуальной манине

Подскажите, а этот скрипт будет стартовать для конкретного пользователя или для всех. У меня просто стоит NX сервер и мне нужно каждый раз вручную логиница и запускать скрипт для расшара папки. P.S. Заранее спасибо!

Igor, этот скрипт будет запускаться под пользователем root при инициализации системы. Также, можно написать специальный скрипт, который сможет запускать различные программы под какими-то определенными пользователями.

А NX server исправно автозапускается после установки из deb с официального сайта. Вы собирали его из исходного кода?

После запуска компьютера, как правило, нам приходится запускать некоторые программы. которыми мы пользуемся чаще всего. Также после запуска системы нам может понадобиться выполнить какие-либо специфичные действия, например, создать нужные файлы или установить некоторые параметры. Очень неудобно делать это вручную. Для решения таких задач существует автозагрузка.

В этой статье мы рассмотрим как работает автозагрузка Linux, как добавить программы автозагрузки, куда их будет более правильно добавить, а также какие виды автозагрузки бывают в этой операционной системы.

Юниты SystemD типа service

В SystemD все сервисы которые можно запускать или останавливать описываются в специальных юнитах service. Это значит, что в таких юнитах описывается вся информация, которая поможет запустить сервис (службу).

Наверно юниты SystemD следовало изучать после изучения процессов. И скорее всего в будущем я поменяю очерёдность в оглавлении. Но сейчас я постарался описать службы (юниты типа service) с минимальным объяснением процессов.

Как вам известно, юниты – это обычные файлы. В юнитах типа service описывается способ запуска исполняемых файлов (бинарных или скриптов).

В SystemD есть специальная утилита, которая позволяет управлять службами – systemctl. Вот некоторые её подкоманды:

  • systemctl start <unit.service> – запуск службы. При этом происходит какая-то подготовка и запуск одного или нескольких исполняемых файлов. А когда запускаются исполняемые файлы, то в системе стартуют соответствующие процессы. Из этого следует, что после запуска службы в системе запустится один или несколько процессов, которые будут работать в одной службе.
  • systemctl stop <unit.service> – остановка службы. Эта команда должна остановить службу. При этом должны остановиться все связанные со службой процессы. Хотя процессы не обязательно должны завершиться, это зависит от того, что написано в юните.
  • systemctl status <unit.service> – статус службы. С помощью этой команды можно узнать статус службы. А именно запущена ли она или нет, какие в неё работают процессы и какой из них главный процесс. А также можно посмотреть последние логи службы.
  • systemctl reload <unit.service> – перечитывание конфигурации. Эта команда заставит работающие процессы перечитать свои конфиги. Хотя на самом деле, она выполнит то, что написано в юните.
  • systemctl restart <unit.service> – перезапуск службы. То есть остановка и последующее включение службы.
  • systemctl enable <unit.service> – включение автозапуска. Эта команда включает автозапуск для службы, а вот когда будет срабатывать автозапуск, зависит от написанного в юните.
  • systemctl disable <unit.service> – выключение автозапуска. А эта команда выключает автозапуск у службы.
  • systemctl cat <unit.service> – вывод содержимого файла юнита. То есть делает тоже самое, что и команда cat /путь/unit.service.

Мне кажется лучше всего изучать написание юнитов с помощью просмотра уже подготовленных юнитов. Давайте посмотрим на один такой юнит – ssh.service.

Автозапуск пользовательских скриптов при инициализации системы – oss-it

Иногда пользователи могут столкнуться с необходимостью добавления каких-то сервисов или событий в автозагрузку Linux системы (Ubuntu, Debian, CentOS, Gentoo, Alpine Linux и так далее), но не всегда удается сделать это встроенным в графическую среду средствами (например Startup Applications в Ubuntu). То, как сделать простой скрипт и добавить его запуск при инициализации системы будет рассказано ниже.

Опишем это на простом примере: opendchub – это сервис dc-хаба, который может запускаться только под супер-пользователем (то есть он запускается вручную только командой или непосредственно под root’ом).

В текстовом редакторе введите три строки будущего скрипта:

Сохраните изменения (Ctrl+O) и выйдите из текстового редактора nano (Ctrl+X)В первой строке этого скрипта указывается интерпретатор (если вы не знакомы с этим понятием, то лучше оставить именно такой как указан выше).Во второй строке, командой echo обеспечивается простой вывод на экран текста – в принципе эта строка необязательна, она лишь будет информировать пользователя о том, какое действие происходит в данный момент.Третьей строкой собственно указывается команда запуска (в нашем примере – это сервис opendchub) – пишется тут всё точно также, как вы выполняли необходимую команду в терминале, за исключением того, что не надо добавлять ‘sudo‘ – так как этот скрипт будет выполняться при инициализации системы, то есть уже сразу под суперпользователем.

После того как файл создан, сделаем его исполняемым:

Теперь добавим созданный скрипт к автозагрузке. Для этого есть несколько способов, опишем два наиболее встречающихся.

Если вывод команды:

в вашем дистрибутиве покажет “systemd”, то рекомендуем создать systemd unit, в других случаях стоит прибегнуть ко второму описаному решению, init.Systemd и init – это разные системы инициализации, используемые в Linux. Изначально массово использовалась init, но последние годы во всё большем количестве дистрибутивов используется systemd. Стоить добавить, что это не единственные системы инициализации, но как правило большинство из них поддерживают синтаксис init.

Systemd

Перед тем как добавить наш сценарий в автозагрузку при использовании системы инициализации systemd, потребуется создать соответствующий файл описания (так называемый “юнит”, являющийся прямой инструкцией системной службы):

В текстовом редакторе скопируйте следующие строки в этот файл:

Сохраните изменения (Ctrl+O) и выйдите из текстового редактора nano (Ctrl+X).Description – заполняентся произвольно, это просто описание юнита.After=network.target – означает, что эта служба сможет быть запущена только после поднятия сетвых сервисов.ExecStart – путь к исполняемому файлу, будет выполнять при старте службы.WantedBy=multi-user.target – означает, что будущий сервис будет запускаться после активации цели multi-user.target (примерно тоже самое что runlevel 3 в init).Более подробно о возможностях systemd можно прочесть здесь или здесь.

После сохранения файла юнита вы можете использовать созданную службу odchub, например, стартовать (единократно выполнить написанный нами скрипт):

Для удаления созданной таким образом службы, достаточно пары команд:

Init

После того как создан исполняемый скрипт в соответствующей директории (в нашем случае /etc/init. d/odchub), для включения его при загрузках системы, достаточно выполнить команду:

Числовое значение после слова defaults указывает на приоритет для старта этого скрипта.

В результате этих действий сервис opendchub будет запускаться еще до загрузки графической среды, сразу вместе с инициализацией операционной системой. Если вы захотите удалить этот скрипт из автозагрузки, то перед тем как удалить сам файл надо выполнить такую команду:

Используя эти простые примеры вы можете аналогичным образом создать свой собственный скрипт и добавить его к автозагрузке.

Автозагрузка проложений

Как мы уже поняли в каталогах /etc/rc.d/* лежат символьные ссылки на скрипты. Где цифры от это уровень загрузки у inittab или systemd. Мы можем менять руками порядок запуска, убирать и добавлять. По сути systemd пробежится по всем файлам и попытается их инициализировать при старте системы. Теперь разберем управление через команды: chkconfig — нужна для просмотра сервисов(программ). Поддерживает режим изменения для любого уровня загрузки.

update-rc.d — служит для запуска/остановки скриптов, при старте/выключении системы. Собственно через нее мы и будем менять автозапуск графической оболочки KDE(kdm). Так уж получилось, что у меня запуск окружения KDE включен для 2-5 уровней по умолчанию.

При старте системы я отключаю 2-4 уровень загрузки и проверяю что у меня стоит 3-й уровень загрузки

Перезагружаюсь и вижу приглашение консоли tty. profit

На самом деле, это чуть больше чем консоль. Мы можем переключаться между вкладками. CTRL+ALT+(F1-F6)

команда startx запустит графику KDE.

Вывод: Тут должен быть вывод, но вместо него я вставлю кота

Всем спасибо, кто дочитал.

Список используемой литературы:

Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.

Мы привыкли, что для того, чтобы добавить программу в автозагрузку в Windows достаточно поместить ее ярлык в папку автозагрузка. Здесь все немного по-другому. Для управления автозагрузкой в Linux Mint 18 есть специальное приложение: Startup Applications или по-нашему «Приложения, запускаемые по умолчанию». С другой стороны, автозагрузка Linux Mint очень похожа на автозагрузку в Ubuntu, но в последних версиях разработчики все немного переделали, и появились некоторые отличия. Поэтому мы рассмотрим как все сделать именно в Linux Mint.

В этом примере мы рассмотрим как добавить в автозагрузку Linux Mint программу VLC, но все действия работают абсолютно для любой программы. VLC был выбран для того, чтобы статья не была слишком абстрактной и показывала реальный пример.

Специальные пакеты

ubuntu-desktop — стандартная среда Ubuntukubuntu-desktop — рабочий стол KDExubuntu-desktop — рабочий стол XFCEubuntu-minimal — основные утилиты Ubuntuubuntu-standard — стандартные утилиты Ubuntuubuntu-restricted-extras — несвободные, но полезные пакеты для Ubuntukubuntu-restricted-extras — несвободные, но полезные пакеты для Kubuntuxubuntu-restricted-extras — несвободные, но полезные пакеты для Xubuntubuild-essential — пакеты, используемые для компиляции программlinux-image-generic — последний образ ядра genericlinux-headers-generic —последние headers ядра

10.2.2. Отображение статуса сервиса

Чтобы отобразить подробную информацию о юните сервиса, соответствующему системному сервису, введите следующую команду:

systemctl status name.service

Замените name на имя юнита сервиса, который вы хотите проверить (например, ). Эта команда отобразит имя выбранного юнита, затем краткое описание, одно или несколько полей из описанных в Таблице 10.5, “Доступная информация о юнитах сервисов”. А если вы выполните команду под пользователем root, то также увидите последние записи из лога.

Таблица 10.5. Доступная информация о юнитах сервисов
Поле Описание
Loaded Информация о том, загружен ли юнит сервиса, абсолютный путь к файлу юнита, включен ли в автозагрузку
Active Информация о том, запущен ли юнит сервиса и отметка о времени
Main PID PID соответствующей системной службы и далее ее имя.
Status Дополнительная информация о соответствующем системном сервисе.
Process Дополнительная информация о связанных процессах.
CGroup Дополнительная информация о связанных контрольных группах (cgroups).

Чтобы убедиться, что конкретный юнит сервиса запущен, выполните команду:

systemctl is-active name.service

Аналогично, чтобы определить активирован ли определенный юнит сервиса, введите:

systemctl is-enabled name.service

Обратите внимание, что systemctl is-active и systemctl is-enabled возвращают статус 0 если данный юнит сервиса запущен или включен в автозагрузку. Информацию о том, как просмотреть все загруженные юниты сервисов см

в разделе .

Пример 10.2. Отображение статуса сервиса

Юнит сервиса для GNOME Display Manager называется gdm.service. Чтобы определить текущий статус этого сервиса, введите следующую команду:

~# systemctl status gdm.service
gdm.service - GNOME Display Manager
   Loaded: loaded (usrlibsystemdsystemgdm.service; enabled)
   Active: active (running) since Thu 2013-10-17 17:31:23 CEST; 5min ago
 Main PID: 1029 (gdm)
   CGroup: system.slicegdm.service
           ├─1029 usrsbingdm
           ├─1037 usrlibexecgdm-simple-slave --display-id orggno...
           └─1047 usrbinXorg : -background none -verbose -auth r...
 
Oct 17 17:31:23 localhost systemd1: Started GNOME Display Manager.

Пример 10.3. Отображение сервисов, которые запускаются до старта выбранного сервиса

Чтобы узнать какие сервисы запускаются до выбранного сервиса, введите следующую команду:

~# systemctl list-dependencies --after gdm.service
gdm.service
├─dbus.socket
├─getty@tty1.service
├─livesys.service
├─plymouth-quit.service
├─system.slice
├─systemd-journald.socket
├─systemd-user-sessions.service
└─basic.target
output truncated

Пример 10.4. Отображение сервисов, которые запускаются после старта выбранного сервиса

Чтобы узнать какие сервисы запускаются после выбранного сервиса, введите следующую команду:

~# systemctl list-dependencies --before gdm.service
gdm.service
├─dracut-shutdown.service
├─graphical.target
│ ├─systemd-readahead-done.service
│ ├─systemd-readahead-done.timer
│ └─systemd-update-utmp-runlevel.service
└─shutdown.target
  ├─systemd-reboot.service
  └─final.target
    └─systemd-reboot.service

АВТОЗАГРУЗКА В UBUNTU

Первым делом нужно сказать, что в Ubuntu существует несколько уровней автозагрузки. Я не буду говорить здесь про systemd и , так как уже рассматривал это в одной из первых статей. Программу или скрипт можно добавить в автозагрузку такими путями:

  • Утилита «Автоматически запускаемые приложения»;
  • Папка «Автозапуск»;
  • Файл rc.local;
  • Файл Xinitrc;

Мы рассмотрим первые два способа, поскольку два последние более рассчитаны на скрипты, а не программы. Сначала автозагрузка в Ubuntu с помощью стандартной утилиты.

Откройте меню системы и наберите «Авто»
и откройте программу, которая будет первой в списке, Автоматически запускаемые приложения:

Здесь будут перечислены все приложения, которые сейчас запускаются автоматически. Чтобы добавить в автозагрузку ubuntu еще одно приложение, нажмите кнопку «Добавить»
:

Здесь нужно ввести имя нового пункта, а также команду запуска приложения. Вы можете выбрать приложение в файловой системе, если не помните путь, нажав кнопку «Обзор»
:

В команде можно указывать параметры, если это нужно. Еще можно заполнить поле «Описание»
, но это уже необязательно. Если вам нужна определенная программа из главного меню, но вы не знаете где ее найти и как пишется ее команда, можно посмотреть ее в том же меню. Но для этого нам нужно сначала установить утилиту «Главное меню»
из центра приложений:

Здесь вам нужно обратить внимание на строку «Команда»
, скопируйте ее и можете использовать для автозагрузки

Следующий способ — это папка автозагрузки. Она находится по адресу ~/.config/autostart. По сути, это тот же самый способ, только он может выполняться без графического интерфейса. Когда вы настраиваете автозагрузку через приложение, то в этой папке создаются файлы настроек с именем desktop. Вот, например:

Напоминаю, что для того, чтобы посмотреть скрытые файлы нужно нажать сочетание клавиш Ctrl+H. Теперь попытаемся создать новый конфигурационный файл для еще одной программы. Вот таким будет его синтаксис:

Type
=
Application

Name
=
имя_нового_пункта

Exec
=
команда

Icon
=
полный_путь_к_иконке

Comment
=
комментарий

X-GNOME-Autostart-enabled
=
true

Для примера, сделаем файл для запуска плеера VLC, он будет выглядеть вот так:

vi ~/.config/autostart/vlc.desktop

Type=Application
Name=VLC
Exec=vlc
Icon=/usr/share/icons/hicolor/16×16/apps/vlc.png
Comment=VLC Media Player
X-GNOME-Autostart-enabled=true

Готово, и самое интересное, что если вы откроете приложение автозагрузки. То там тоже появится этот пункт. Это такой способ настройки без графического интерфейса.

Управление службами

Основополагающая цель системы инициализации заключается в инициализации компонентов, которые должны запускаться после загрузки ядра Linux (традиционно называются компоненты пользовательского пространства). Система инициализации также используется для управления службами и демонами для сервера и в любой момент времени работы системы. С учетом этого мы начнем с нескольких базовых операций по управлению службами.

В целью большинства действий являются «модули», являющиеся ресурсами, которыми знает, как управлять. Модули распределяются по категориям по типу ресурса, который они представляют, и определяются файлами, известными как файлы модулей. Тип каждого модуля можно вывести из суффикса в конце файла.

Для задач по управлению службами целевым модулем будут модули службы, которые имеют файлы модулей с суффиксом . Однако для большинства команд по управлению службами вы можете не использовать суффикс , поскольку достаточно умна, чтобы знать, что вы, возможно, хотите работать со службой при использовании команд по управлению службами.

Как мы уже упомянули выше, будет искать файлы для команд управления службами, так что команду можно легко ввести следующим образом:

Хотя вы можете использовать вышеуказанный формат для общего администрирования, для ясности мы будем использовать суффикс для остальных команд, чтобы предельно четко выражать цель, над которой мы работаем.

Чтобы остановить работающую в данный момент службу, можно использовать команду :

Чтобы перезапустить работающую службу, можно использовать команду :

Если данное приложение может перезагрузить файлы конфигурации (без перезапуска), вы можете выдать команду для инициализации этого процесса:

Если вы не уверены, есть ли у службы функция перезагрузки своей конфигурации, можно использовать команду . Это перезагрузит необходимую конфигурацию при наличии. В противном случае будет перезагружена служба для выбора новой конфигурации:

Указанные выше команды полезны для запуска или остановки служб во время текущего сеанса. Чтобы дать команду автоматически запускать службы при загрузке, их необходимо включить.

Для запуска службы во время загрузки используйте команду :

При этом будет создана символическая ссылка из системной копии служебного файла (обычно в или ) в месте на диске, где ищет файлы для автозапуска (обычно ; что такое цель, мы рассмотрим далее в этом руководстве).

Чтобы отключить автоматический запуск службы, можно ввести следующее:

При этом будет удалена символическая ссылка, что укажет на то, что служба не должна запускаться автоматически.

Помните, что включение службы не запустит ее в текущем сеансе. Если вы хотите запустить службу и включить ее при загрузке, необходимо дать обе команды, и .

Чтобы проверить статус службы в вашей системе, можно использовать команду :

При этом вы получите статус службы, иерархию контрольных групп и первые несколько строк журнала.

Например, при проверке статуса сервера Nginx вы можете видеть следующий вывод:

Это дает вам хороший обзор текущего статуса приложения и уведомляет о наличии каких-либо проблем или необходимости выполнения каких-либо действий.

Также есть методы для проверки определенных статусов. Например, чтобы проверить, активен ли (работает ли) модуль в данный момент, можно использовать команду :

Это вернет текущий статус модуля, который обычно или . Код выхода будет «0», если он активен, и результат будет проще парсить в скрипты оболочки.

Чтобы увидеть, включен ли модуль, можно использовать команду :

Это выведет информацию о том, что служба или , и снова установит код выхода на «0» или «1» в зависимости от вопроса команды.

Третья проверка заключается в проверке того, находится ли модуль в состоянии сбоя. Это означает, что была проблема, которая запустила данный модуль:

Это вернет , если он работает должным образом, или , если возникла ошибка. Если модуль был намеренно остановлен, может вернуться или . Статус выхода «0» означает, что произошел сбой, а статус выхода «1» указывает на какой-либо другой статус.

Заключение

К этому моменту вы должны уже ознакомиться с некоторыми базовыми возможностями команды , которая позволяет взаимодействовать и контролировать экземпляр . Утилита будет главной точкой взаимодействия для управления службами и состоянием системы.

Хотя работает главным образом с основным процессом , в экосистеме есть другие компоненты, которые контролируются другими утилитами. Другие возможности, такие как управление журналами и сеансы пользователя, обрабатываются отдельными демонами и утилитами управления (/ и / соответственно). Знакомство с этими другими инструментами и демонами упростит задачу управления.

Понравилась статья? Поделиться с друзьями:
Быть в курсе нового
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: