Перейти до вмісту

Управління службами в Linux: запуск, зупинка й перезапуск

Управління службами в Linux: запуск, зупинка й перезапуск

Для досвідчених користувачів Linux управління службами - ключова навичка. Якщо ви хочете використовувати вебсервер, як-от Apache, вам треба запустити цю службу. Щоб отримати доступ до бази даних, вам треба запустити MySQL. Ефективне управління цими службами не лише робить їх доступними, а й зберігає стабільність і продуктивність системи.

Багато користувачів думають, що виконання цих завдань є складним, але це досить просто. Незалежно від того, чи ви на CentOS, Ubuntu, Red Hat, Fedora чи Debian, базові команди по суті однакові.

Тепер дещо прояснімо. Є два основні інструменти для управління цими службами: systemctl і service.

Systemctl - потужніший варіант. Він дає змогу керувати залежностями, вмикати чи вимикати служби й навіть інтегрується з журналами через journalctl. З іншого боку, service значно простіший і використовується переважно для базових команд, як-от start, stop і status. Він трапляється здебільшого в старіших системах, що використовують SysVinit.

Ваш вибір між ними залежить від дистрибутива Linux. Більшість сучасних систем використовують systemd, тож ви, ймовірно, покладатиметеся на systemctl. Однак деякі адміністратори досі надають перевагу старій команді service за звичкою. Добра новина: навіть у системах із systemd команда service досі працює для базових функцій.

Іноді ви можете натрапити на служби, які потребують ручного втручання й розташовані в /etc/rc.d або /etc/init.d. Але для найкращих практик управління службами тримайтеся systemctl.

Запуск служби Linux

Почнімо з того, як запустити службу, як-от Apache.

  1. Відкрийте термінал.
  2. Введіть: sudo systemctl start httpd.

Розберімо це:

  • sudo дає вам змогу виконати команду з правами root.
  • systemctl керує менеджером служб.
  • start - це дія, яку ви виконуєте: запуск служби.
  • httpd - це назва служби Apache.

У разі успіху ви побачите: «The service httpd has started successfully.» Якщо вона вже працює, побачите: «The service httpd is already running.»

Поширені повідомлення про помилки

  1. Failed to start httpd.service. Unit httpd.service not found.

    Це означає, що пакет Apache відсутній. Ви можете встановити його за допомогою:

    • sudo apt install apache2 для систем на базі Debian.
    • sudo yum install httpd для систем на базі Red Hat.
  2. Failed to start httpd.service. Address already in use.

    Це означає, що інший процес використовує порт 80. Скористайтеся sudo lsof -i:80, щоб знайти конфліктний процес, і або зупиніть його, або змініть порт Apache.

Зупинка служби Linux

Щоб зупинити Apache, кроки подібні:

  1. Відкрийте термінал.
  2. Введіть: sudo systemctl stop httpd.

Ви побачите: «The service httpd has been stopped successfully.» Якщо вона не працювала, отримаєте: «Failed to stop service httpd. Unit httpd.service is not loaded.» У такому разі вам треба встановити Apache.

Інші повідомлення, які ви можете побачити:

  • «Failed to stop service httpd. Unit httpd.service is not running.» Це просто означає, що вона вже зупинена.
  • «Failed to stop service httpd. Unit httpd.service is in a failed state.» Перевірте журнали командою sudo journalctl -xe для діагностики.
  • «Failed to stop service httpd. Unit httpd.service is locked.» Це означає, що нею керує інший процес. Зачекайте мить і спробуйте знову або перевірте запущені процеси командою ps aux | grep httpd.

Перезапуск служби Linux

Щоб перезапустити Apache:

  1. Відкрийте термінал.
  2. Введіть: sudo systemctl restart httpd.

Ви маєте побачити: «The service httpd has been restarted successfully.»

Якщо служба не працює, повідомлення буде: «The service httpd is not running.» Ви можете запустити її командою sudo systemctl start httpd або перевірити її стан командою systemctl status httpd.

Якщо ви бачите «Job for httpd.service failed», то щось не так із конфігурацією. Перевірте журнали помилок командою sudo journalctl -xe для докладнішої інформації.

Використання команди service

Якщо ви надаєте перевагу команді service, вона досі працює в більшості сучасних дистрибутивів:

  • Запуск: sudo service httpd start
  • Зупинка: sudo service httpd stop
  • Перезапуск: sudo service httpd restart

Коли ви виконуєте ці команди, вони перенаправляються до systemctl, тож ви отримаєте ті самі результати без помилок. Хочете копнути глибше? Використайте команду man systemctl для докладного читання про її можливості.

Щоб замовити послуги з розробки програмного забезпечення та адміністрування систем, відвідайте нашу сторінку контактів.