Flume のsystemdサービスファイルを作成しようとしていますが、次の内容で/etc/systemd/system/flume-ng.service
を作成しました
[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
flumeサービスを開始しますが、サービスとして停止するにはどうすればよいですか?
この場合、私はPIDで殺さなければなりませんでした。
ありがとう
サービスを停止するために使用するコマンドを使用して、[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 のマニュアルをお読みください。
systemctl stop flume-ng.service
を実行するだけです。実行されると、デフォルトのアクションはSIGTERM
をメインプロセスに送信し、構成可能な時間まで待機して、プロセスが終了したかどうかを確認します。プロセスが終了しない場合、systemdはジョブを実行するSIGKILL
シグナルを送信します。メインプロセスが他のプロセスを分岐させた場合、それらはすべて同じcgroupに存在するため、systemdもそれらを削除します。
サービスをシャットダウンする別の方法がない限り、ExecStop=
ディレクティブを指定する必要はありません。