Управление службами в Linux: запуск, остановка и перезапуск
Для продвинутых пользователей Linux управление службами - ключевой навык. Если вы хотите использовать веб-сервер, например Apache, нужно запустить эту службу. Чтобы получить доступ к базе данных, потребуется запустить MySQL. Эффективное управление службами не только делает их доступными, но и держит систему стабильной и производительной.
Многие считают такие задачи сложными, но на деле всё довольно просто. Независимо от того, работаете вы на CentOS, Ubuntu, Red Hat, Fedora или Debian, базовые команды по сути одинаковы.
Теперь проясним один момент. Для управления службами есть два основных инструмента: systemctl и service.
Systemctl - более мощный вариант. Он позволяет управлять зависимостями, включать или отключать службы и даже интегрируется с журналами через journalctl. С другой стороны, service гораздо проще и в основном используется для базовых команд вроде start, stop и status. Чаще всего он встречается в старых системах с SysVinit.
Выбор между ними зависит от вашего дистрибутива Linux. Большинство современных систем используют systemd, так что вы, скорее всего, будете опираться на systemctl. Однако некоторые администраторы по привычке предпочитают старую команду service. Хорошая новость в том, что даже при использовании `system
d, theservice` command still works for basic functions.
Иногда можно встретить службы, требующие ручного вмешательства, расположенные в /etc/rc.d или /etc/init.d. Но для лучших практик управления службами придерживайтесь systemctl.
Запуск службы Linux
Начнём с того, как запустить службу, например Apache.
- Откройте терминал.
- Введите:
sudo systemctl start httpd.
Разберём по частям:
sudoпозволяет выполнять команду с правами root.systemctlуправляет менеджером служб.start- выполняемое действие, то есть запуск службы.httpd- имя службы Apache.
При успехе вы увидите: «The service httpd has started successfully.» Если служба уже работает, будет: «The service httpd is already running.»
Частые сообщения об ошибках
-
Failed to start httpd.service. Unit httpd.service not found.
Это значит, что пакет Apache отсутствует. Установить его можно так:
sudo apt install apache2для систем на базе Debian.sudo yum install httpdдля систем на базе Red Hat.
- Failed to start httpd.service. Address already in use.
Это значит, что порт 80 занят другим процессом. Используйте
sudo lsof -i:80, чтобы найти конфликтующий процесс, и либо остановите его, либо измените порт Apache.
Остановка службы Linux
Чтобы остановить Apache, шаги похожи:
- Откройте терминал.
- Введите:
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:
- Откройте терминал.
- Введите:
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 для подробного изучения её возможностей.
Чтобы заказать наши услуги по разработке программного обеспечения и системному администрированию, посетите нашу страницу контактов.
