用systemd激活套接字没有数据

胡须

我有两个小的systemd套接字和服务文件:

插座:

[Socket]
ListenStream=80
# also tried with Accept=no

[Install]
WantedBy=sockets.target

服务:

[Unit]
Description=Test Webserver

[Service]
EnvironmentFile=/path/to/node-script.env
ExecStart=/path/to/node /path/to/server.js
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=node-script
Type=simple
User=test-user
Group=test-user

[Install]
WantedBy=sockets.target

信封:

PORT=80

我有一个很小的Node.js脚本:

var http = require('http');
var server = http.createServer();
server.on('connection', function(conn) {
  // socket connection
  console.log('new connection', conn.address());
  conn.on('data', function(data) {
    console.log('more data', data.length);
  });
}).on('request', function(req, res) {
  // a request!
  console.log('new request', req.headers);
}).listen({fd: 3}, function() {
  console.log('listening on provided descriptor', server.address());
});

如果我启动它:

$ systemctl start node-script.socket
$ curl localhost

卷毛就坐在那儿。如果我尝试将netcat数据直接插入套接字,也是一样。检查日志时,我注意到服务器已建立连接,但从未收到任何数据或请求。

listening on provided descriptor { address: '::', family: 'IPv6', port: 80 }
new connection { address: '::1', family: 'IPv6', port: 80 }

数据在哪里?

pdw

如果其他人遇到此问题:在systemd[Service]部分中,您需要添加以下行:

NonBlocking=True

尽管仅旧版本才需要这样做;已修复node.js来在0.12系列中的某个位置设置非阻塞标志本身。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

systemd“套接字激活”与xinetd

来自分类Dev

Systemd套接字激活触发bash脚本

来自分类Dev

QT套接字不读取所有数据

来自分类Dev

从Qt中的套接字读取所有数据

来自分类Dev

套接字上具有数据数组的C结构

来自分类Dev

使用systemd套接字激活启动Docker容器吗?

来自分类Dev

UDP守护程序的systemd-activate套接字激活

来自分类Dev

Systemd套接字激活:关闭套接字时杀死bash脚本

来自分类Dev

通过具有套接字激活功能的systemd用户单元的按需SSH Socks代理未按预期重新启动

来自分类Dev

为没有 systemd 的 unix 套接字生成一个目录

来自分类Dev

如何检查是否使用Python中的TCP套接字接收了所有数据

来自分类Dev

发送完所有数据后,SMTP是否应关闭套接字?

来自分类Dev

如何检查是否使用Python中的TCP套接字接收了所有数据

来自分类Dev

Socket.IO套接字ID是否敏感/私有数据?

来自分类Dev

C 套接字在 HTTP 站点开始挂起之前未收到所有数据

来自分类Dev

有没有办法用套接字发送两条消息

来自分类Dev

没有数据的Gridview

来自分类Dev

如果没有收到数据,Python UDP套接字会重新发送数据

来自分类Dev

Python套接字错误没有35

来自分类Dev

Python:SocketServer没有套接字

来自分类Dev

套接字没有响应

来自分类Dev

没有得到套接字响应

来自分类Dev

systemd:尚不支持基于套接字的激活的按需启动服务(如postgresql和mysql)

来自分类Dev

systemd:尚不支持基于套接字的激活的按需启动服务(如postgresql和mysql)

来自分类Dev

Systemd基于套接字的激活服务由于“启动请求重复太快”而失败

来自分类Dev

如何在没有收到TCP套接字的情况下检查是否有传入数据?

来自分类Dev

在一定时间内没有收到数据后断开套接字

来自分类Dev

Python Arp嗅探原始套接字没有回复数据包

来自分类Dev

如何从套接字读取数据,直到什么都没有剩下?

Related 相关文章

  1. 1

    systemd“套接字激活”与xinetd

  2. 2

    Systemd套接字激活触发bash脚本

  3. 3

    QT套接字不读取所有数据

  4. 4

    从Qt中的套接字读取所有数据

  5. 5

    套接字上具有数据数组的C结构

  6. 6

    使用systemd套接字激活启动Docker容器吗?

  7. 7

    UDP守护程序的systemd-activate套接字激活

  8. 8

    Systemd套接字激活:关闭套接字时杀死bash脚本

  9. 9

    通过具有套接字激活功能的systemd用户单元的按需SSH Socks代理未按预期重新启动

  10. 10

    为没有 systemd 的 unix 套接字生成一个目录

  11. 11

    如何检查是否使用Python中的TCP套接字接收了所有数据

  12. 12

    发送完所有数据后,SMTP是否应关闭套接字?

  13. 13

    如何检查是否使用Python中的TCP套接字接收了所有数据

  14. 14

    Socket.IO套接字ID是否敏感/私有数据?

  15. 15

    C 套接字在 HTTP 站点开始挂起之前未收到所有数据

  16. 16

    有没有办法用套接字发送两条消息

  17. 17

    没有数据的Gridview

  18. 18

    如果没有收到数据,Python UDP套接字会重新发送数据

  19. 19

    Python套接字错误没有35

  20. 20

    Python:SocketServer没有套接字

  21. 21

    套接字没有响应

  22. 22

    没有得到套接字响应

  23. 23

    systemd:尚不支持基于套接字的激活的按需启动服务(如postgresql和mysql)

  24. 24

    systemd:尚不支持基于套接字的激活的按需启动服务(如postgresql和mysql)

  25. 25

    Systemd基于套接字的激活服务由于“启动请求重复太快”而失败

  26. 26

    如何在没有收到TCP套接字的情况下检查是否有传入数据?

  27. 27

    在一定时间内没有收到数据后断开套接字

  28. 28

    Python Arp嗅探原始套接字没有回复数据包

  29. 29

    如何从套接字读取数据,直到什么都没有剩下?

热门标签

归档