2016-11-03 5 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で殺す必要がありました。あなたがサービスを停止するために使用するコマンドと[Service]セクションでExecStopオプションに置く必要がある

おかげ

答えて

1

[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 

または任意のコマンドは、次にあなたがsystemctl stop flume-ngでサービスを停止することができますflume-ng

を停止することです:のような

何か。

https://www.freedesktop.org/software/systemd/man/systemd.service.htmlのマニュアルを参照して、サービスを制御するためのすべてのオプションを確認してください。

0

systemctl stop flume-ng.serviceを実行するだけで済みます。実行されると、デフォルトアクションはメインプロセスにSIGTERMを送信し、プロセスが終了したかどうかを確認するための設定可能な時間まで待ちます。プロセスが終了しない場合、systemdはジョブを実行するSIGKILLシグナルを送信します。メインプロセスが他のプロセスをフォークしてしまった場合、systemdはすべて同じcgroupに存在するため、それらもダウンされます。

サービスをシャットダウンする方法が異なる場合を除き、ExecStop=ディレクティブは必要ありません。

関連する問題