小编Ren*_*ene的帖子

如何在服务停止时关闭 systemd 套接字?

我目前正在尝试使用两个 Fifo 套接字创建一个 systemd 服务。这些套接字映射到应用程序的标准输出和标准输入。我当前正在使用以下配置文件。

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
Run Code Online (Sandbox Code Playgroud)

foo-out.socket

[Unit]
Description=foo Task Writes to this

[Socket]
Service=foo.service
ListenFIFO=%t/foo/out
Run Code Online (Sandbox Code Playgroud)

foo-in.socket

[Unit]
Description=foo Task reads commands from this

[Socket]
Service=foo.service
ListenFIFO=/run/user/1000/foo/in
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

有没有办法在服务停止时自动停止套接字?

systemd services socket fifo socket-activation

7
推荐指数
1
解决办法
4813
查看次数

标签 统计

fifo ×1

services ×1

socket ×1

socket-activation ×1

systemd ×1