Как создать и запустить новый (свой собственный) сервис Units в Systemd используя скрипт оболочки Bash Shell Script

Как создать и запустить новый (свой собственный) сервис Units в Systemd используя скрипт оболочки Bash Shell Script

Рубрики:

SystemD

Метки:

,

Сегодня поговорим о том, как создать и запустить новый (свой собственный) сервис Units в Systemd используя скрипт оболочки Bash Shell Script. Несколько дней назад я наткнулся на Centos 7 32-битного дистрибутива, и почувствовал желание испытать его на старой 32-битной машине. После загрузки я понял, что там баг — пропадает сетевое соединение, которое я должен был восстанавливать каждый раз после перезагрузки. Итак, вопрос в том, как я могу установить данный скрипт без всяких проблем.

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

В этой статье я собираюсь объяснить, что такое сервис в Systemd, как легко создать и запустить задачи его. Я постараюсь упрощенно объяснить наши цели, объяснить, и разберемся в группе служб (сервисов). Наконец, мы воспользуемся блоком обслуживания, чтобы запустить свой собственный скрипт после загрузки.

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

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

Как создать и запустить новый (свой собственный) сервис Units в Systemd используя скрипт оболочки Bash Shell Script

 

Как вы можете видеть, некоторые сервисы являются активными и «работают» все время, в то время как другие запускаются одноразово. Если вы хотите проверить статус службы, введите:

 

 

Как вы можете видеть,  я проверил состояние firewalld.service (вы можете использовать автозаполнение для имени службы). Вывод на экран сообщает мне , что сервис firewalld работает все время, и что он включен.

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

Например:

 

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

 

Как создать и запустить новый (свой собственный) сервис Units в Systemd используя скрипт оболочки Bash Shell Script

 

Есть сервисы, которые будут запущены тогда, когда достигнут определенного уровня загрузки системы. Эти сервисы будут занесены в каталог с именем /etc/systemd/system/multi-user.target.wants/ .

 

 

Тут также есть и целые группы этих сервисов.

Давайте сделаем блок обслуживания с именем connection.service .

введите следующие комманды (нажмите “i”для режима вставки текста), сохраните это и выйдите (с помощью “esc”и “:wq!”):

 

Как создать и запустить новый (свой собственный) сервис Units в Systemd используя скрипт оболочки Bash Shell Script

Объясню выше сказанное: мы создали блок типа обслуживания (вы также можете создавать блоки нужного типа), мы установили его так, чтоб network.target выполнялось после загрузки (вы можете понять так, что процедура загрузки достигает уровня загрузки с определенным отчетом), и мы хотим, чтобы каждый раз служба запускала выполнение скрипта bash с именем conup.sh (Bash Shell Script), которое мы собираемся создать.

Веселье начинается с последней частью [Install]. Что будет искать «multi-user.target» . Поэтому, если мы включим наш сервис, символическая ссылка на эту службу будет создана внутри папки multi-user.target.wants!

Просто включите его и проверьте:

мы увидим, что символическая ссылка multi-user.target.wants была создана в папке. Проверьте это:

 

 

Как вы можете видеть «connection.service» готов к следующей загрузке, но мы должны создать файл скрипта.

 

Добавьте следующую строку в Vim и сохраните его:

 

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

Например,

 

создаем файл в папке tmp

Мы должны также сделать скрипт исполняемым:

 

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

 

Если вы выбрали написать команду „touch /tmp/testbootfile“ внутри скрипта, просто чтобы проверить его функциональность, вы увидите этот файл, созданный в /tmp папке.

 

Как создать и запустить новый (свой собственный) сервис Units в Systemd используя скрипт оболочки Bash Shell Script

Теперь вы знаете, так создать и запустить новый (свой собственный) сервис Units в Systemd используя скрипт оболочки Bash Shell Script.

Спасибо за уделенное время на прочтение статьи!

Если возникли вопросы, задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Ciscoкурсы по кибербезопасности,  полный курс по кибербезопасности от Академии Ciscoкурсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).

Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!

Спешите подать заявку! Группы стартуют 25 января, 26 февраля, 22 марта, 26 апреля, 24 мая, 21 июня, 26 июля, 23 августа, 20 сентября, 25 октября, 22 ноября, 20 декабря.
Что Вы получите?
  • Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
  • Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проведем вечерние онлайн-лекции на нашей платформе.
  • Согласуем с вами удобное время для практик.
  • Если хотите индивидуальный график — обсудим и реализуем.
  • Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
  • Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
А еще поможем Вам:
  • отредактировать или создать с нуля резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco, Linux LPI, кибербезопасность, DevOps / DevNet, Python, подайте заявку или получите бесплатную консультацию.

Рубрики:

SystemD

Метки:

,

Больше похожих постов

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения


Поиск по сайту
Лучшее
Популярное
Рубрики
Меню