Невозможно отключить службу systemd serial-getty

На Raspberry Pi с Arch Linux есть активная служба под названием serial-getty@AMA0.

Файл модуля: /usr/lib/systemd/system/[email protected]

Как root я могу вызвать

systemctl stop serial-getty@ttyAMA0
systemctl disable serial-getty@ttyAMA0

Но после перезагрузки служба включается и снова работает.

Почему после отключения служба включается? Как я могу отключить его навсегда?

ОБНОВИТЬ

systemd использует генераторы в / usr / lib / systemd / system-generators / is двоичный файл systemd-getty-generator. Этот двоичный файл запускается при запуске системы и добавляет символическую ссылку [email protected] в /run/systemd/generator/getty.target.wants.

В конце концов я нашел грязное решение. Я закомментировал все действия в /usr/lib/systemd/system/[email protected]. Служба все равно запускалась, но без блокировки ttyAMA0.


person lojoe    schedule 06.02.2014    source источник
comment
Посмотрите, где размещены символические ссылки на /usr/lib/systemd/system/[email protected].   -  person Sergey Kanaev    schedule 06.02.2014


Ответы (2)


Правильный способ остановить повторное включение службы - использовать:

systemctl mask [email protected]

(в данном случае используется ttyAMA0). Это добавит ссылку на null к записи для этой службы.

person Rob Meades    schedule 12.03.2014
comment
Может ли суффикс .service быть пропущено? - person Peter Mortensen; 16.04.2018

Попробуйте этот код:

system("systemctl stop [email protected]");
system("systemctl disable [email protected]");

Я им пользуюсь, и он хорошо работает.

person m-tech    schedule 21.08.2017
comment
В каком контексте? Из сценария Bash? Скрипт Python? Сценарий Perl? Программа на C? Что-то другое? - person Peter Mortensen; 15.04.2018
comment
да, вы можете использовать system (); в c ++ в linux. например, вы можете использовать system (data), system (dir), system (ls) в c ++. запустить bash script (системный скрипт в linux) - person m-tech; 25.04.2018
comment
Я вошел в систему впервые за долгое время, чтобы оставить этот комментарий. Пожалуйста, не используйте функцию C system. Он имеет хорошо известные проблемы с безопасностью. В этом случае это особенно плохо, потому что для управления systemd часто требуются привилегии root. изменить: я добавлю это для контекста wiki.sei.cmu .edu / confluence / pages / - person Woodrow Douglass; 01.09.2020