Системні служби відіграють вирішальну роль у функціонуванні системи 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>

Команда Пуск
Як зупинити системну службу в Linux
Синтаксис:
sudo systemctl stop service.service>
Команда stop служить для зупинки служби або (дезактивації) одного чи кількох модулів, указаних у командному рядку.
приклад:
sudo systemctl stop mariadb>

Команда Stop і Status
Як відобразити статус системної служби в Linux
Синтаксис:
sudo systemctl status service.service>
Команда status служить для перевірки стану послуги. Показує стислу інформацію про стан виконання одного або кількох модулів, а потім останні дані журналу з журналу. Якщо одиниці не вказано, показати статус системи.
приклад:
sudo systemctl status mariadb>

Статус команди
Як перезапустити системну службу в Linux
Синтаксис:
sudo systemctl restart service.service>
Команда restart служить для перезапуску служби у виконанні. Зупиніть, а потім запустіть один або кілька модулів, указаних у командному рядку. Якщо блоки ще не запущені, їх буде запущено.
приклад:
sudo systemctl restart mariadb>

Команда Перезапуск
Як увімкнути системну службу в Linux
Синтаксис:
sudo systemctl enable name_service.service>
Команда enable служить для виконання служби з моменту ініціалізації, якщо вона складається з одного або кількох одиниць або екземплярів одиниць. Це створить набір символічні посилання , як закодовано в розділах [Install] вказаних файлів модуля. конфігурація системного менеджера перезавантажується (у спосіб, еквівалентний daemon-reload), щоб гарантувати, що зміни враховуються негайно.
приклад
document.queryselector
sudo systemctl enable mariadb>

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

Статус команди
Як вимкнути системну службу в Linux
Синтаксис:
sudo systemctl disable name_service.service>
Команда disable служить для скасування послуги з моменту ініціалізації одного або кількох блоків. Це видаляє всі символічні посилання на файли одиниць, які підтримують зазначені одиниці, з каталогу конфігурації одиниць і, отже, скасовує будь-які зміни, зроблені шляхом увімкнення або посилання.
приклад:
sudo systemctl disable mariadb>

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

Статус команди
Вимкніть або перезавантажте систему за допомогою 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 `>.