systemd StandardOutput 重定向不适用于 systemd 套接字

systemd StandardOutput 重定向不适用于 systemd 套接字

我有一个像这样的 systemd 服务 (my-server.service):

[Unit]
Description=My Server
After=syslog.target network-online.target my-server.socket

[Service]
Type=simple
ExecStart=/usr/bin/java myserver.jar
Sockets=my-server.socket
StandardOutput=fd:my-server.socket

[Install]
WantedBy=multi-user.target

以及附带的套接字(my-server.socket):

[Unit]
Description=My Server Output Socket

[Socket]
ListenFIFO=/run/my-server-log
SocketMode=0644
RemoveOnStop=false

我试图基本上拥有一个命名套接字,如果我想处理服务器输出,我可以简单地连接到该套接字。我的问题是,无论是tail -f /run/my-server-log打开同一文件的 python 脚本还是打开同一文件的 python 脚本都不会输出任何内容。输出都没有显示systemd status,所以我不知道它消失在哪里,但它似乎没有像它应该的那样进入命名管道。

我是不是漏掉了什么或误解了什么?据我所知,这个设置应该可以正常工作,这个人似乎有一个类似的设置工作正常,所以我不确定我的配置有什么问题。

相关内容