Как запускать, останавливать и перезапускать службы в Linux
23 июня 2023 г.Для опытных пользователей Linux очень важно запускать, останавливать и перезапускать службы Linux. Эти операции позволяют пользователям получить доступ к функциям каждой службы. Например, для использования веб-сервера пользователям необходимо запустить службу Apache, а для использования базы данных пользователи должны запустить службу MySQL. Управление службами Linux также важно для стабильности системы и может помочь повысить ее производительность.
Несмотря на распространенное мнение, запуск, остановка и перезапуск служб в Linux относительно просты. Мы будем работать с Linux, но все команды для запуска, остановки и перезапуска служб Linux можно выполнять в CentOS, Ubuntu, Redhat, Fedora, Debian и многих других дистрибутивах.
Перейти к:
- Понимание systemctl против службы
Запуск службы Linux
Остановка службы Linux
Перезапуск службы Linux
Запуск, остановка и перезапуск служб с использованием службы
Это не так сложно
Понимание systemctl против службы
Существует два официальных инструмента управления, которые обеспечивают согласованный способ запуска, остановки, перезапуска и управления системными службами в Linux:
- systemctl
услуга
Какой из них вы используете, будет зависеть от того, использует ли ваш дистрибутив systemd или init. Большинство современных дистрибутивов перешли на systemd, поэтому systemctl является предпочтительным менеджером служб. Но от некоторых старых привычек трудно избавиться, поэтому многие администраторы по-прежнему придерживаются устаревшей команды службы.
К счастью, разработчики systemd сохранили сервис и перенаправили его на systemctl. Еще больше усложняет ситуацию то, что вы можете найти случайно установленную службу, которая не была обновлена ни до службы, ни до инструментов systemctl, и ее необходимо запустить вручную с помощью /etc/rc.d (или /etc/init.d).
Таким образом, это все еще может быть немного запутанным.
Но мы ищем здесь лучшие практики, а для запуска, остановки или перезапуска приложений в Linux лучшие практики начинаются и заканчиваются с помощью systemctl.
Запуск службы Linux
Допустим, вы хотите запустить сервер Apache.
Сделать это:
1. Откройте окно терминала.
2. Запустите команду sudo systemctl start httpd.
В этой команде:
- sudo сообщает Linux, что вы запускаете команду как пользователь root.
systemctl управляет службами systemd.
start указывает команде systemctl запустить службу Apache.
httpd — это имя службы веб-сервера Apache.
3. После запуска команды вы получите следующее сообщение:
Служба httpd успешно запущена.
Обратите внимание, что если служба уже запущена, вы увидите следующее сообщение:
Служба httpd уже запущена.
Остановка службы Linux
Чтобы остановить службу Apache:
1. Откройте окно терминала
2. Запустите команду sudo systemctl stop httpd.
3. Теперь вы должны увидеть следующее сообщение:
Служба httpd успешно остановлена.
Обратите внимание, что если служба, в данном случае Apache, не запущена, вы получите следующее сообщение:
Не удалось остановить службу httpd. Модуль httpd.service не загружен.
Или вы можете получить одно из следующих сообщений:
Не удалось остановить службу httpd. Модуль httpd.service не запущен.
Не удалось остановить службу httpd. Модуль httpd.service находится в состоянии сбоя.
Не удалось остановить службу httpd. Модуль httpd.service заблокирован.
Перезапуск службы Linux
Чтобы перезапустить ту же службу (Apache):
1. Откройте окно терминала.
2. Запустите команду sudo systemctl перезапустить httpd.
3. Служба перезапустится, и вы вернетесь к командной строке bash.
4. Вы получите следующее сообщение:
Служба httpd успешно перезапущена.
Если служба не запущена, вы увидите следующий вывод:
Служба httpd не запущена.
Вы также можете использовать следующую команду, чтобы проверить состояние службы, прежде чем пытаться перезапустить ее:
статус systemctl httpd
Запуск, остановка и перезапуск служб с использованием службы
Что интересно, сервисная команда все еще работает — даже для тех дистрибутивов, которые перешли на systemd и systemctl. Это означает, что те, кто инстинктивно вводит службу при необходимости перезапустить службу в Linux, не получат сообщение об ошибке «Неизвестная команда».
В случае службы команда будет перенаправлена на systemctl. На самом деле, когда вы запускаете команду службы в дистрибутиве с поддержкой systemctl, вы четко видите информацию о перенаправлении (рис. A).
Рисунок А
Использование сервисной команды немного отличается от systemctl. Имя службы и параметры запуска, остановки и перезапуска переключаются:
запуск службы sudo httpd служба sudo httpd остановить перезапуск службы sudo httpd
В каждом случае вы увидите, что служба перенаправляется на systemctl, но служба, которую вы пытаетесь запустить, остановить или перезапустить, завершится успешно.
Это не так сложно
Я усложнил вопрос, упомянув старые методы запуска, остановки и перезапуска служб в Linux. По правде говоря, процесс управления службами в Linux не так сложен; вам нужно только понять правильную команду для использования.
Чтобы узнать больше о том, что systemctl может сделать для вас, обязательно выполните команду man systemctl и прочтите справочную страницу.
Оригинал