Поиск по сайту:
Когда мне хочется прочесть роман, я сам пишу его (Б. Дизраэли).

Как удалить файл Systemd Service

17.08.2024
Как удалить файл Systemd Service

Многие пакеты в Linux поставляются со служебными файлами, работающими в фоновом режиме. Часто служебные файлы не удаляются даже после удаления соответствующего пакета. Следовательно, накопление нежелательных служб вызывает дополнительную нагрузку на систему. В таких случаях становится необходимым удалить ненужные служебные файлы.

Для удаления служебных файлов крайне важно понимать набор каталогов, содержащих служебные файлы.

Служебные файлы обычно хранятся в нескольких определенных каталогах, в зависимости от их назначения и от того, кто их установил. Список каталогов приведен ниже.

/lib/systemd/systemСлужебные файлы из загруженных пакетов
/etc/systemd/systemСлужебные файлы, созданные системным администратором
~/.config/systemd/usersСлужебные файлы обычными пользователями

 

Итак, если загружен пакет, предоставляющий демона и службы, то эти файлы будут сохранены в каталоге /lib/systemd/system . Каталог /etc/systemd/system содержит служебные файлы, созданные системными администраторами, и изменять их могут только пользователи sudo. В то время как каталог ~/.config/systemd/users содержит служебные файлы, созданные обычными пользователями.

 

Как получить доступ к служебному файлу

Первым шагом удаления служебного файла является поиск точного пути к нему. Чтобы найти путь, используйте команду systemctl status с именем службы.

systemctl status [SERVICE-NAME]

 

Чтобы найти название службы, вы можете перечислить все запущенные службы.

systemctl list-unit-files --type=service --state=running
Если вы хотите составить список всех служб, используйте команду systemctl с опциями –type и –state.
список systemctl-unit-files

Например, чтобы найти путь к модулю myservice.service, мы выполним команду status.

systemctl list-unit-files

Вывод показывает путь к файлу модуля в разделе «Loaded«.

Читать  Повысьте производительность сети за счет масштабирования TCP-окна

Теперь, когда мы получили путь к сервису, мы приступим к его удалению на следующем шаге.

 

Предупреждение: Перед удалением служебных файлов из системы крайне важно иметь полное представление о системных служебных файлах и их значении для системы. Удаление важного служебного файла из системы может привести к необратимому повреждению.

 

Как удалить служебный файл

Для удаления службы в Linux будут использоваться утилиты командной строки systemctl и rm . Используйте systemctl, чтобы остановить и отключить службу, а затем используйте rm, чтобы удалить служебные файлы из соответствующего каталога.

Чтобы удалить служебный файл, выполните последовательность команд, приведенную ниже.

sudo systemctl stop SERVICE-NAME
sudo systemctl disable SERVICE-NAME
sudo rm /lib/systemd/system/SERVICE-NAME #Service from the downloaded package
sudo rm /etc/systemd/system/SERVICE-NAME #Service by the administrator
sudo rm ~/.config/systemd/users/SERVICE-NAME #Service by the normal user
sudo systemctl daemon-reload
sudo systemctl reset-failed

 

Во-первых, рекомендуется остановить службу, чтобы убедиться, что она не запущена во время удаления, хотя ее отключение также предотвратит повторный запуск. Затем его необходимо отключить, что предотвращает автоматический запуск службы; при отключении службы также удаляются символические ссылки, созданные в каталогах .wants/ или .requires/. После этого удалите служебные файлы с помощью команды rm из соответствующего каталога.

Читать  Полное руководство по eBPF для лучшей наблюдаемости

Перезагрузите конфигурации systemd с помощью daemon-reload и команды execute reset-failed. Команда reset-failed сбрасывает все службы в состояние failed.

 

Пример

В этом примере давайте удалим службу, созданную системным администратором. Служба называется myservice.service и находится в каталоге /etc/systemd/system.

Проверьте состояние службы.

systemctl status myservice.service

 

Как удалить файл Systemd Service

 

Служба запущена; укажите путь к разделу «Loaded» и disable службу.

sudo systemctl disable myservice.service

 

sam@sam: $ sudo systemctl disable myservice.service
Removed /etc/systend/system/multi-user.target.wants/myservice.service.

 

Это также приведет к удалению символической ссылки изкаталога /etc/systemd/system.

Затем удалите служебный файл, используя команду rm и путь к служебному файлу.

sudo rm /etc/systemd/system/myservice.service

 

Теперь перезагрузите конфигурацию systemd, чтобы применить изменения.

systemctl daemon-reload

 

Вот и все! Служба удалена и ее больше нет в вашей системе. Проверьте это, проверив состояние службы.

sam@sam: $ systemctl status myservice.service 

Unit myservice.service could not be found.

 

Заключение

Удаление службы становится обязательным, если она запущена, даже если она больше не нужна. Она может потреблять системные ресурсы, если ее оставить без присмотра. В этом руководстве я описал полный метод удаления службы из Linux. Сначала определите имя и путь к сервису, а затем отключите его. После этого удалите файл service из соответствующего каталога и перезагрузите конфигурации systemd для завершения процедуры.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
Поделиться в соц. сетях:


0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Это может быть вам интересно


Рекомендуемое
При работе с базой данных SQL мы используем оператор SELECT…

Спасибо!

Теперь редакторы в курсе.