logo

Як запустити, зупинити та перезапустити служби в Linux за допомогою команди systemctl

Системні служби відіграють вирішальну роль у функціонуванні системи Linux, обробляючи різні завдання та процеси у фоновому режимі.systemctl>це потужний інструмент командного рядка, який дозволяє користувачам ефективно керувати цими службами. У цій статті ми розглянемо основи використанняsystemctl>для запуску, зупинки, перезапуску, увімкнення, вимкнення та відображення стану служб у середовищі Linux.

Що таке systemctl?

Перш ніж зануритися в управління послугами, важливо зрозуміти основиsystemctl>. Ця команда використовується для керування системою та менеджером служб systemd, який є центральним компонентом сучасних дистрибутивів Linux.



systemctl [command] [unit]>

тут,

  • command> : Дія, яку потрібно виконати (наприклад, запуск, зупинка, перезапуск, увімкнення, вимкнення).
  • unit> : Послуга або одиниця, на яку буде впливати.

Systemctl — це контролер або утиліта Systemd (система ініціалізації з набором програм, які виконуються у фоновому режимі), з допоміжними службами керування. Ці команди виконуються в режимі root, якщо ви не в режимі root-права системи, запитуючи пароль root.

Що таке послуга?

Сервіс в обчислювальній техніці — це фоновий процес, який виконує певні завдання та функції без втручання користувача. Служби часто запускаються автоматично під час завантаження системи та працюють безперервно, щоб забезпечити такі функції, як веб-сервіс, спільний доступ до файлів або моніторинг системи. Ними керує операційна система, і їх можна запустити, зупинити або перезапустити за потреби. Сервіси допомагають забезпечити постійну доступність основних операцій. Приклади включають такі веб-сервери, як Apache, сервери баз даних, як MySQL, і послуги системного журналювання.



Що таке демон?

Демон — це фоновий процес, який безперервно працює в системі Linux або Unix. Він виконує завдання без безпосередньої взаємодії з користувачем, часто запускаючись автоматично під час завантаження. Типовими прикладами є веб-сервери, сервери баз даних і інструменти моніторингу системи. Демони зазвичай мають імена, що закінчуються на d, наприкладhttpd>абоsshd>. Вони допомагають ефективно керувати системними функціями та послугами.

Що таке система ініціалізації?

Система ініціалізації — це перший процес, який запускається під час завантаження системи Linux і відповідає за ініціалізацію системи. Він керує системними службами та процесами, обробляючи їх запуск, зупинку та перезапуск. Поширені системи ініціалізації включають SysVinit, Upstart і systemd. Система init забезпечує правильну роботу всіх необхідних служб і керує залежностями між ними. Він продовжує працювати у фоновому режимі для моніторингу та керування системними процесами під час роботи системи.

Одиниці в systemd

У systemd одиниці — це основні об’єкти, якими керує та контролює systemd. Вони представляють системні ресурси, такі як служби, таймери, пристрої та точки монтування. Кожна одиниця визначається файлом конфігурації з певним суфіксом, наприклад.service>за послуги або.timer>для таймерів. Блоки можна запускати, зупиняти, увімкнути або вимкнути за допомогою команд systemctl. Вони важливі для визначення того, як система завантажується та керує різними процесами та ресурсами.



.сервісні одиниці в systemd

Systemd.service>Units — це конфігураційні файли, які використовуються для керування службами в системах Linux. Вони визначають, як і коли служби повинні бути запущені, зупинені та перезапущені. Кожен.service>містить такі деталі, як назва служби, опис і команда для запуску. Ці файли зазвичай знаходяться в/etc/systemd/system>або/lib/systemd/system>. Управління ними передбачає такі команди, якsystemctl start>,systemctl stop>, іsystemctl enable>.

Як знайти всі блоки systemd у системі?

Щоб отримати список доступних системних блоків або отримати список усіх служб у Linux, ми використовуємо наступну команду:

systemctl list-unit-files --type service -all>

Як запустити системну службу в Linux

Синтаксис:

df.loc
sudo systemctl start service.service>

Команда start служить для запуску (активації) однієї або кількох одиниць, указаних у командному рядку.

приклад:

sudo systemctl start mariadb>
запуск systemctl

Команда Пуск

Як зупинити системну службу в Linux

Синтаксис:

sudo systemctl stop service.service>

Команда stop служить для зупинки служби або (дезактивації) одного чи кількох модулів, указаних у командному рядку.

приклад:

sudo systemctl stop mariadb>
systemctl зупинка

Команда Stop і Status

Як відобразити статус системної служби в Linux

Синтаксис:

sudo systemctl status service.service>

Команда status служить для перевірки стану послуги. Показує стислу інформацію про стан виконання одного або кількох модулів, а потім останні дані журналу з журналу. Якщо одиниці не вказано, показати статус системи.

приклад:

sudo systemctl status mariadb>
статус systemctl

Статус команди

Як перезапустити системну службу в Linux

Синтаксис:

sudo systemctl restart service.service>

Команда restart служить для перезапуску служби у виконанні. Зупиніть, а потім запустіть один або кілька модулів, указаних у командному рядку. Якщо блоки ще не запущені, їх буде запущено.

приклад:

sudo systemctl restart mariadb>
перезапуск systemctl

Команда Перезапуск

Як увімкнути системну службу в Linux

Синтаксис:

sudo systemctl enable name_service.service>

Команда enable служить для виконання служби з моменту ініціалізації, якщо вона складається з одного або кількох одиниць або екземплярів одиниць. Це створить набір символічні посилання , як закодовано в розділах [Install] вказаних файлів модуля. конфігурація системного менеджера перезавантажується (у спосіб, еквівалентний daemon-reload), щоб гарантувати, що зміни враховуються негайно.

приклад

document.queryselector
sudo systemctl enable mariadb>

systemctl увімкнути

Команда Увімкнути

Статус команди

Як вимкнути системну службу в Linux

Синтаксис:

sudo systemctl disable name_service.service>

Команда disable служить для скасування послуги з моменту ініціалізації одного або кількох блоків. Це видаляє всі символічні посилання на файли одиниць, які підтримують зазначені одиниці, з каталогу конфігурації одиниць і, отже, скасовує будь-які зміни, зроблені шляхом увімкнення або посилання.

приклад:

sudo systemctl disable mariadb>

systemctl вимкнути

Команда Вимкнути

Статус команди

Вимкніть або перезавантажте систему за допомогою systemctl

Перезавантажте систему: Це інструктуєsystemd>щоб перезапустити всю систему. Усі служби зупинено, і система проходить повний процес завершення роботи перед перезапуском.

sudo systemctl reboot>

Вимкніть систему: Він повідомляє systemd вимкнути машину. Усі служби та процеси зупинено, а систему безпечно вимкнуто.

sudo systemctl shutdown>

journalctl

journalctl>це команда, яка використовується в системах Linux запитувати та відображати журнали зsystemd>журнал, який є системною службою, яка збирає та зберігає дані журналу. Ось простий посібник із використанняjournalctl>:

journalctl -n 10>використовується для відображення останніх 10 записів (рядків) із журналу systemd. Ось розбивка того, що робить кожна частина команди:

  • journalctl> : Викликаєjournalctl>команда, яка використовується для запиту та відображення журналів із журналу systemd.
  • -n 10> : визначає кількість рядків для відображення. В цьому випадку,-n 10>інструктуєjournalctl>щоб показати останні 10 записів із журналу.
journalctl -n 10>

Захист служби за допомогою systemd є важливою практикою для захисту вашої системи від потенційної вразливості та несанкціонованого доступу. Ось спрощена інструкція щодо того, як це зробити:

1. Зрозумійте файли блоків обслуговування

генератор випадкових чисел java
  • Конфігурація служби : кожною службою в systemd керує одиничний файл, який зазвичай знаходиться в/etc/systemd/system/>. Ці файли визначають, як працює служба, включаючи її поведінку при запуску, обмеження ресурсів і налаштування безпеки.

2. Обмежити дозволи служби

  • Дозволи користувача та групи : вкажіть користувача та групу, під якою виконується служба. Уникайте використання користувача root, коли це можливо, щоб мінімізувати вплив порушень безпеки.

3. Використовуйте функції безпеки systemd

  • PrivateTmp : увімкнути приватне/tmp>і/var/tmp>каталоги служби для запобігання витоку інформації між різними службами.
  • ProtectSystem і ProtectHome : встановіть ці параметри, щоб обмежити доступ до системних каталогів і домашніх каталогів користувачів, відповідно, для підвищення безпеки системи.
  • ReadOnlyPaths і ReadWritePaths : вкажіть, з яких каталогів служба може читати або записувати. Обмеження доступу до запису може запобігти ненавмисним модифікаціям критичних файлів.

4. Обмежте використання ресурсів

  • Обмеження ЦП і пам'яті : ВикористовуйтеCPUQuota>іMemoryLimit>параметри для обмеження використання процесора та пам’яті служби, запобігаючи атакам виснаження ресурсів.

5. Увімкніть елементи керування мережею

  • Обмежити доступ до мережі : ВикористовуйтеRestrictAddressFamilies>,IPAddressAllow>, іIPAddressDeny>параметри контролю доступу до мережі для служби, обмежуючи її вплив на потенційні загрози.

6. Установіть дозволи файлової системи

  • Дозволи файлової системи : Переконайтеся, що файли та каталоги служби мають відповідні дозволи (chmod>) і право власності (chown>), щоб запобігти несанкціонованому доступу.

7. Регулярно оновлюйте та контролюйте

  • Оновлюйте систему : Регулярно оновлюйте системне та службове програмне забезпечення, щоб виправляти вразливі місця в безпеці та переконатися, що ваші заходи безпеки залишаються ефективними.
  • Журнали моніторингу : Відстежувати журнали журналу systemd (journalctl>) для будь-яких підозрілих дій або подій, пов’язаних із безпекою, і за необхідності вживайте відповідних заходів.

Висновок

Ми обговорили systemctl, який є життєво важливим інструментом командного рядка для керування системними службами в Linux, відіграючи вирішальну роль у таких завданнях, як запуск, зупинка, перезапуск, увімкнення та вимкнення служб. У цій статті надано вичерпний посібник із systemctl, який охоплює його синтаксис і ключові команди. Від переліку доступних модулів systemd до ввімкнення або вимкнення автоматичного запуску, кожна команда сприяє ефективному управлінню послугами. У статті також розглядалися типові запитання, пропонуючись практичні рішення для таких завдань, як перевірка стану служби, запуск, зупинка та перезапуск служб, а також увімкнення та вимкнення автоматичного запуску. Загалом, розуміння та оволодіння командами systemctl є важливими для Адміністратори Linux для забезпечення стабільності та оптимальної продуктивності своїх систем.

Systemctl – поширені запитання

Що таке служба Linux?

Служба Linux — це фоновий процес або програма, яка працює незалежно від взаємодії користувача, надаючи певні функції або виконуючи системні завдання. Ним керує система ініціалізації, зазвичай systemd, і його можна запускати, зупиняти та керувати за допомогою таких команд, якsystemctl>.

Яка різниця між Systemctl і службою?

systemctl>це інструмент командного рядка, який використовується для керування службами systemdservice>є символічним посиланням наsystemctl>на багатьох системах, забезпечуючи сумісність зі старими сценаріями ініціалізації.

Як перевірити статус служби в Linux?

Використовуйте ` systemctl status `> щоб побачити, чи служба запущена, активна (нещодавно зупинена) чи неактивна (ніколи не запускалася). Це відкриває важливу інформацію, як-от використання пам’яті та активні з’єднання.

Як запустити, зупинити, перезапустити службу?

Для початку , використовувати:

sudo systemctl start>

Для зупинки , використовувати:

sudo systemctl stop>

Щоб перезапустити , використовувати:

sudo systemctl restart>

Примітка : Не забудьте замінити>з фактичною назвою служби.

Як зробити так, щоб служба запускалася автоматично під час завантаження?

використанняsudo `> systemctl enable `> щоб налаштувати автоматичний запуск служби під час завантаження системи.

Щоб вимкнути автоматичний запуск, використовуйте ` sudo systemctl disable `> .