2016-11-03 4 views
0

systemd 서비스, 다음과 같은 내용 플룸 서비스를 시작하지만 난 그게 서비스로 어떻게 중지합니까 내가 수로에 대한 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 

/etc/systemd/system/flume-ng.service을 만든 중지하는 방법?

이 경우 나는 PID로 죽여야 만했다.

덕분에

답변

1

당신은 당신이 서비스를 중지하는 데 사용할 명령을 [Service] 섹션에서 ExecStop 옵션에 넣어해야합니다. 같은

뭔가 :

[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을 주 프로세스로 보내고 구성 가능한 시간까지 기다렸다가 프로세스가 종료되었는지 확인합니다. 프로세스가 종료되지 않으면 systemd는 작업을 수행하는 신호 인 SIGKILL을 전송합니다. 주 프로세스가 다른 프로세스를 포크했다면, systemd는 모두 동일한 cgroup에 있기 때문에 시스템을 다운시킵니다.

서비스를 종료하는 방법이 다른 경우가 아니면 ExecStop= 지시문이 필요하지 않습니다.