Ответ 1
Правильный способ остановить службу, когда-либо включенную снова, заключается в использовании:
systemctl mask [email protected]
(используя ttyAMA0 в качестве примера в этом случае). Это добавит ссылку на нуль в запись для этой службы.
На малине Pi с Archlinux есть активная услуга, называемая serial-getty @AMA0. Файл блока:/usr/lib/systemd/system/[email protected] Как root я могу вызвать
systemctl stop [email protected]
systemctl disable [email protected]
но после перезагрузки служба снова включена и запущена. Почему услуга включена после ее отключения? Как я могу отключить его постоянным?
UPDATE systemd использует генераторы http://www.freedesktop.org/wiki/Software/systemd/Generators/ в/usr/lib/systemd/system-generatorators/является двоичным, называемым systemd-getty-генератором. Этот бинарный файл запускается при запуске системы и добавляет symlink [email protected] к /run/systemd/generator/getty.target.wants
В конце концов я нашел грязное решение. Я прокомментировал все действия в /usr/lib/systemd/system/serial [email protected] Кажется, что Serivce запускается в любом случае, но без блокировки ttyAMA0.
Правильный способ остановить службу, когда-либо включенную снова, заключается в использовании:
systemctl mask [email protected]
(используя ttyAMA0 в качестве примера в этом случае). Это добавит ссылку на нуль в запись для этой службы.
Попробуйте этот код:
system("systemctl stop [email protected]");
system("systemctl disable [email protected]");
Я использую его и хорошо работаю.