linux - 当套接字和服务的名称不同时,Systemd 套接字服务失败并出现错误
问题描述
我正在创建一个具有不同服务和套接字名称的简单回显套接字服务。我可以知道我在哪里犯了错误吗?我尝试让 foo@.service 不起作用,因此我将服务重命名为 foo.service。我看到类似的代码适用于与echo.socket和echo@.service名称相同的套接字和服务
$ systemctl cat bar.socket
# /etc/systemd/system/bar.socket
#bar socket
[Unit]
Description=bar socket
[Socket]
ListenStream=22223
Accept=yes
$ systemctl cat foo.service
#Foo service
[Unit]
Description=foo service
[Service]
ExecStart=-/bin/cat
StandardInput=socket
Sockets=bar.socket
用命令启动socket后systemctl start bar.socket
,status show socket
$ systemctl 状态栏.socket
● bar.socket - bar socket
Loaded: loaded (/etc/systemd/system/bar.socket; static; vendor preset: enabled)
Active: active (listening) since Thu 2020-03-19 20:20:00 PDT; 17s ago
Listen: [::]:22223 (Stream)
Accepted: 7; Connected: 0
Tasks: 0 (limit: 2318)
CGroup: /system.slice/bar.socket
Mar 19 20:20:00 ubuntu systemd[1]: Listening on bar socket.
一旦我运行命令
socat - TCP:127.0.0.1:22223
套接字崩溃,当我检查状态时看到下面的错误。
* 错误 - $ systemctl status bar.socket *
● bar.socket - bar socket
Loaded: loaded (/etc/systemd/system/bar.socket; static; vendor preset: enabled)
Active: failed (Result: resources) since Thu 2020-03-19 20:17:59 PDT; 1min 19s ago
Listen: [::]:22223 (Stream)
Accepted: 7; Connected: 0
Mar 19 20:17:12 ubuntu systemd[1]: Listening on bar socket.
Mar 19 20:17:59 ubuntu systemd[1]: bar.socket: Failed to queue service startup job (Maybe the service file is missing or not a template unit?): Invalid argument
Mar 19 20:17:59 ubuntu systemd[1]: bar.socket: Failed with result 'resources'.
$ systemctl cat echo.socket
# /etc/systemd/system/echo.socket
#echo socket
[Unit]
Description=echo socket
[Socket]
ListenStream=22222
Accept=yes
$ systemctl cat echo@.service
# /etc/systemd/system/echo@.service
#Echo service
[Unit]
Description=echo service
[Service]
ExecStart=-/bin/cat
StandardInput=socket
解决方案
推荐阅读
- vue.js - 未捕获的类型错误:无法读取未定义 vue 的属性“位置”
- polygon - 使用带有 geotools 24.0 的形状文件数据存储加载多边形几何时出错
- pyinstaller - 是否有等效于使用 PyObjC 的“os.listdir()”方法?
- google-chrome - 如何从弹出窗口访问当前选项卡的 LocalStorage 和 Cookie
- android - Bitbucket Container 'Build' 超出内存限制 - 使用 android build 时
- kotlin - 如何测试返回 com.google.type.Money 的 gRPC 端点
- android - 我无法读取我的 FirebaseDatabase。它显示警告为:W/System: Ignoring header X-Firebase-Locale because its value is null
- python - 将具有不同形状的numpy数组列表转换为灰度值
- javascript - 我的三元代码不起作用 Javascript
- python - 如何将 python 列表中的每个元素与另一个列表中的元素相乘?