2016-11-03 3 views
0

Я пытаюсь создать Systemd файл службы для желоба, создал /etc/systemd/system/flume-ng.service с следующим содержаниемкак остановка Systemd служба

[Unit] 
Description=Apache Flume 

[Service] 
Environment=FLUME_CLASSPATH=/opt/flume/current/lib/ 
ExecStart=/usr/bin/nohup /usr/bin/flume-ng agent -c /etc/flume-ng/conf -f /etc/flume-ng/conf/flume.conf --name a1 & 

[Install] 
WantedBy=multi-user.target 

которые начинают службу водовода, но как я могу остановить его как сервис?

В этом случае мне пришлось убить ПИД.

благодарит

ответ

1

Вы должны поместить в ExecStop опции в разделе [Service] с командой вы хотите использовать, чтобы остановить службу.

Что-то вроде:

[Service] 
Environment=FLUME_CLASSPATH=/opt/flume/current/lib/ 
ExecStart=/usr/bin/nohup /usr/bin/flume-ng agent -c /etc/flume-ng/conf -f /etc/flume-ng/conf/flume.conf --name a1 & 
ExecStop=/usr/bin/flume-ng agent stop 

или любой другой команды, чтобы остановить flume-ng

Затем вы можете остановить службу с systemctl stop flume-ng.

Прочтите руководство по адресу https://www.freedesktop.org/software/systemd/man/systemd.service.html для получения полного набора параметров, доступных для управления услугой.

0

Вы можете просто выполнить systemctl stop flume-ng.service. Когда выполняется, действие по умолчанию отправляет SIGTERM в основной процесс и ждет, пока не будет настроено время, чтобы проверить, завершены ли процессы. Если процесс не завершается, система посылает сигнал SIGKILL, который выполняет задание. Если основной процесс отбросил другие процессы, systemd тоже их снимет, так как все они живут в одной и той же группе.

Вам не нужно иметь директиву ExecStop=, если у вас нет другого способа отключить обслуживание.