Вопрос или проблема
Существует два способа сделать это: service --status-all
. Другой способ – использовать initctl list
. Я хотел бы узнать разницу. Некоторые службы, такие как mysql, не отображаются в initctl list
, а некоторые, такие как ‘nova-api’, не отображаются в service --status-all
.
Как мне получить полный список сразу?
Вы также можете использовать:
systemctl list-units --type=service
или
systemctl list-unit-files --type=service
или
service --status-all
Возможно, эта ссылка поможет вам: service против initctl
Ответ или решение
Для получения полного списка сервисов в системе существуют различные подходы, и каждый из них имеет свои особенности, которые важно учитывать.
-
service --status-all
: Эта команда используется для отображения статуса всех сервисов, управляемых классической системой init. Она показывает все сервисы и их текущие состояния (запущен, остановлен и т.д.). Однако эта команда может не отображать сервисы, которые управляются через другие системы, такие как systemd. -
initctl list
: Эта команда предназначена для систем, использующих Upstart в качестве системы инициализации. Она показывает все менеджеры сервисов, управляемые Upstart. Тем не менее, не все сервисы будут отображаться, особенно если они управляются systemd или другими системами. -
systemctl list-units --type=service
: Эта команда работает с системами, использующими systemd. Она отображает все активные юниты-сервисы, предоставляя информацию о том, какие сервисы сейчас работают. Это хороший способ видеть только те сервисы, которые в данный момент активны. -
systemctl list-unit-files --type=service
: Эта команда также связанна с systemd, но она выводит список всех доступных юнитов-сервисов, независимо от их статуса (активный или неактивный).
Таким образом, если вы хотите получить полный список всех сервисов (активных и неактивных) в одной команде, рекомендуется использовать:
systemctl list-unit-files --type=service
Эта команда покажет все доступные сервисы, включая те, которые могут не отображаться в других командах, таких как service --status-all
или initctl list
.
Если вы используете систему, где coexisting различные системы инициализации (например, Upstart и systemd), стоит учитывать, что не все сервисы могут быть отображены в одной команде. В таком случае, вам может понадобиться использовать комбинацию из всех перечисленных команд, чтобы получить наиболее полное представление о всех сервисах в системе.
Для получения дополнительной информации вы можете ознакомиться с этим источником, где подробно обсуждается различие между service
и initctl
.