ExecStopPostメソッド

ExecStopPostメソッド

現在、2つのFifoソケットを使用してシステムサービスを作成しようとしています。これらのソケットはアプリケーションの標準出力と標準入力にマッピングされます。現在、次の設定ファイルを使用しています。

foo.service

[Unit]
Description=foo Fifo test
After=network.target foo-in.socket foo-out.socket
Requires=foo-in.socket foo-out.socket

[Service]
Sockets=foo-out.socket
Sockets=foo-in.socket
StandardOutput=fd:foo-out.socket
StandardInput=fd:foo-in.socket
StandardError=journal
ExecStart=/path/to/foo/exec

foo-out.socket

[Unit]
Description=foo Task Writes to this

[Socket]
Service=foo.service
ListenFIFO=%t/foo/out

foo-in.socket

[Unit]
Description=foo Task reads commands from this

[Socket]
Service=foo.service
ListenFIFO=/run/user/1000/foo/in

systemctl --user daemon-reloadコマンドを使用してサービスを開始できますsystemctl --user start foo。 foo.serviceを停止しようとすると問題が発生します。次のメッセージが表示されます。

Warning: Stopping foo.service, but it can still be activated by:
  foo-in.socket
  foo-out.socket

サービスが停止したらソケットを自動的に停止する方法はありますか?

ベストアンサー1

手動でドラッグできる良い例です。ここの例は、「docker」サービスを終了しようとすることです。

root@localhost:~# systemctl stop docker
Warning: Stopping docker.service, but it can still be activated by:
   docker.socket

root@llocalhost:~# systemctl stop docker.socket

root@logicaldoc:~# ps aux | grep docker
root      1519  0.0  0.0  14220   924 pts/0    S+   17:41   0:00 grep --color=auto docker

おすすめ記事