![使用带有 Accept=yes 的套接字激活时如何指定服务模板名称](https://linux22.com/image/167379/%E4%BD%BF%E7%94%A8%E5%B8%A6%E6%9C%89%20Accept%3Dyes%20%E7%9A%84%E5%A5%97%E6%8E%A5%E5%AD%97%E6%BF%80%E6%B4%BB%E6%97%B6%E5%A6%82%E4%BD%95%E6%8C%87%E5%AE%9A%E6%9C%8D%E5%8A%A1%E6%A8%A1%E6%9D%BF%E5%90%8D%E7%A7%B0.png)
我有多个.socket
文件,它们用Accept=yes
.它们都应该使用相同的服务模板来处理连接。默认情况下,systemd 会查找与套接字同名的服务模板,但由于我有多个套接字文件,我希望将它们全部指向同一个服务模板。
有一个设置Service=
,但只接受非模板服务并且需要Accept=no
.有没有办法指定从单元调用的服务模板.socket
?
答案1
不可以。从套接字单元名称派生服务单元名称是硬连线在 systemd 代码中的,并且不可配置。
也就是说,您可能可以通过将单个服务单元文件链接到多个文件名来实现。 (即普通链接。 象征性的链接由 systemd 显式解释,并且存在它们不执行普通文件系统语义所期望的操作的风险。)
另请注意,您可以在单个套接字单元中进行多个“侦听”。 (是的,您可能有充分的理由不这样做,包括希望能够单独启用/禁用套接字。但我提到它只是为了以防万一。)