При работе с услуги в дистрибутивеВ зависимости от типа системы, которую вы используете (SysV init, Upstart, systemd,…), способ, которым службы могут быть остановлены, запущены, остановлены, перезапущены и т. Д. Это момент, когда многие сомневаются, как это делается на самом деле, и тот факт, что существует несколько разных систем, не помогает некоторым более неопытным пользователям, которые пытаются сделать это с неправильной командой.
Поэтому я собираюсь показать простое руководство, с помощью которого вам будет понятнее, как вы можете работать в своем дистрибутиве, каким бы он ни был. Для этого первое, что вам нужно знать, - это тип используемого вами демона. Как я уже сказал, не все дистрибутивы используют одно и то же тип системы запуска. На самом деле, как вы знаете, некоторые выступили против нового systemd и создали форки или производные от старого SysV, как в случае с Devuan по сравнению с Debian ...
Как узнать, какую систему использует мой дистрибутив? Что ж, вы можете узнать это, посмотрев эти маршруты, и если они у вас есть, у вас будет такая система в вашем дистрибутиве:
- Чтобы узнать, есть ли у вас systemd: найти путь / usr / lib / systemd
- Чтобы узнать, есть ли у вас Upstart: найдите этот другой путь / usr / share / upstart
- Чтобы узнать, есть ли у вас SysV init: найти путь /etc/init.d
- Сено другиеДаже если это немного реже, в этих конкретных случаях вы можете сделать что-то подобное, если подозреваете, что это не так.
Еще один способ сделать это еще проще, поскольку он одинаков для всех, он должен искать информацию в / proc о PID = 1, то есть о первом процессе, от которого зависают остальные, и который точно соответствует этому демону запуска. Для этого просто выполните следующую команду, и она вернет имя:
sudo stat /proc/1/exe
Теперь вы знаете, какая у вас система, поэтому давайте команды, которые вы можете использовать для управления услугами:
- Инициализация SysV: /etc/init.d/[service_demon_name] [действие]
- Systemd: systemctl [действие] [имя_демона]
- Выскочка: service [service_demon_name] [действие]
- другие: Если вы используете другую систему, вам лучше посмотреть руководство. Например, в некоторых редких случаях в Linux и других Unix-системах для сброса службы может использоваться сигнал из процесса SIGHUP: kill -HUP $ (cat / var / run / [service-PID])
вы должны заменить [действие] для того, что вам нужно сделать. Например, если вам нужно перезапустить, используйте сброс, если вы хотите прекратить использование стоп, если вы хотите начать использовать звездочку и т. Д. И замените [daemon_name] именем демона службы, которую вы хотите запустить. Например:
systemctl reset httpd
Надеюсь, теперь вам стало понятнее.
Есть еще системы с выскочкой? Думаю просто какой-то старый убунту.
Также, даже если у вас есть systemd, у вас все еще может быть папка etc / init.d
Я предпочитаю использовать другую команду, например ps или pstree, и не злоупотреблять sudo-this-sudo-that.
привет
Команда "service" работает как в системах init.d, так и в systemd.