标签: socket

启动 docker 服务时出错:未找到单元

我正在使用 Redhat 7.4,这台机器没有互联网连接,我想安装 Docker,因此我下载了一个 rpm 包,这个:

docker-ce-selinux-17.03.0.ce-1.el7.centos.noarch.rpm

我使用了该命令yum install,显然所有过程都进行得很顺利,但是当我使用时我的问题就开始了,sudo systemctl start docker我得到了这个:

无法启动 docker.service:未找到单元。

我尝试了本主题中的解决方案:Cannot start docker daemon in CentOS7 | Stack Overflow和我的问题没有解决,我在文档 docker.socket 中写了这个

[Unit]
Description=Docker Socket for the API
PartOf=docker.service

[Socket]
ListenStream=/var/run/docker.sock
SocketMode=0660
SocketUser=root
SocketGroup=docker

[Install]
WantedBy=sockets.target
Run Code Online (Sandbox Code Playgroud)

使用该命令时,sudo systemctl start docker.socket它会抛出:

docker.socket 的作业失败。有关详细信息,请参阅“systemctl status docker.socket”和“journalctl -xe”。

然后我使用了这个命令sudo systemctl status docker.socket并得到了这个

docker.socket - Docker Socket for the API
Loaded: loaded (/usr/lib/systemd/system/docker.socket; disabled; vendor 
preset: disabled)
Active: inactive (dead)
Listen: …
Run Code Online (Sandbox Code Playgroud)

rhel socket docker

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

如何在服务停止时关闭 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
查看次数

哪些系统不支持套接字读/写权限?

man 7 unix 在 Linux 上说:

在 Linux 实现中,文件系统中可见的套接字尊重它们所在目录的权限。它们的所有者、组和权限可以更改。如果进程在创建套接字的目录上没有写入和搜索(执行)权限,则创建新套接字将失败。 连接到套接字对象需要读/写权限。这种行为不同于许多 BSD 派生系统,后者忽略 UNIX 域套接字的权限。便携式程序不应依赖此功能来确保安全。

哪些系统会忽略 UNIX 域套接字的权限?

permissions socket portability

6
推荐指数
2
解决办法
2755
查看次数

使用 Unix 域套接字控制 VLC

我对使用 UNIX 域套接字来控制 VLC 播放感兴趣。使用 oldrcVideoLan 文档中概述了此功能。

所以我需要的是使用以下命令启动 vlc:

cvlc <path to media> -I oldrc --rc-unix /some/socket
Run Code Online (Sandbox Code Playgroud)

然后我应该能够发送 vlc 命令/some/socket来控制播放。

我的 Kubuntu 12.10 系统上是否有任何通用套接字可以用于此目的?

vlc socket

6
推荐指数
1
解决办法
2550
查看次数

Memcache 'stats' 报告非零的 'curr_connections' - 但 lsof 显示没有套接字连接

我们的内存缓存守护进程报告非零的 'curr_connections'...

$ telnet memcache-server 11211
Escape character is '^]'.
stats
...
STAT curr_connections 12
...
Run Code Online (Sandbox Code Playgroud)

...然而,lsof显示没有套接字连接:

$ ssh memcache-server
# lsof -P -i -n | grep memcache
memcached 1759 memcached   26u  IPv4  11638      0t0  TCP *:11211 (LISTEN)
memcached 1759 memcached   27u  IPv6  11639      0t0  TCP *:11211 (LISTEN)
memcached 1759 memcached   28u  IPv4  11642      0t0  UDP *:11211 
memcached 1759 memcached   29u  IPv6  11643      0t0  UDP *:11211 
Run Code Online (Sandbox Code Playgroud)

我猜 'curr_connections' 并不意味着我认为它的作用......

lsof socket

6
推荐指数
1
解决办法
6898
查看次数

ssh:从套接字读取失败:对等方重置连接

当我尝试通过 ssh 连接到远程主机时,我收到以下错误消息:

root@cloudstack-server-1:~/.ssh# ssh ubuntu@172.17.4.17 -v
OpenSSH_5.9p1 Debian-5ubuntu1.1, OpenSSL 1.0.1 14 Mar 2012
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to 172.17.4.17 [172.17.4.17] port 22.
debug1: Connection established.
debug1: permanently_set_uid: 0/0
debug1: identity file /root/.ssh/id_rsa type 1
debug1: Checking blacklist file /usr/share/ssh/blacklist.RSA-1024
debug1: Checking blacklist file /etc/ssh/blacklist.RSA-1024
debug1: identity file /root/.ssh/id_rsa-cert type -1
debug1: identity file /root/.ssh/id_dsa type 2
debug1: Checking blacklist file /usr/share/ssh/blacklist.DSA-1024
debug1: Checking blacklist file /etc/ssh/blacklist.DSA-1024
debug1: identity …
Run Code Online (Sandbox Code Playgroud)

ssh socket

6
推荐指数
1
解决办法
5万
查看次数

如何通过wifi从串口发送数据?

我有从传感器读取数据并通过串行到 USB 转换器(ftdi232 电缆)发送的微控制器设备。这个串口转 USB 转换器连接到 ARMv7 迷你电脑 - CuBox和 Ubuntu 13.04。我还将 WiFi USB 适配器连接到 CuBox。

我想从串口读取数据并通过 WiFi 发送并在 Windows PC 上接收。没有网络套接字编程,使用可用的工具是可能的吗?类似于串行端口和 WiFi 之间的管道/桥接/重定向。我不需要与这个盒子通信,所以通过 WiFi 的恒定和单向数据流就足够了。

感谢您提供有关如何设置此通信的任何资源和想法。

wifi bridge serial-port socket

6
推荐指数
1
解决办法
8269
查看次数

在 netstat 输出中区分 TCP 服务器和客户端

我在客户端进程和服务器进程之间有一个套接字连接,它们都在我的机器上运行。有两个条目显示为连接,

sudo netstat -ntp | grep 56442
tcp        1      0 127.0.0.1:56442         127.0.0.1:8002          CLOSE_WAIT  8276/python
tcp        0      0 127.0.0.1:8002          127.0.0.1:56442         FIN_WAIT2   -
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我如何确定哪个是服务器?

我知道 TCP 服务器正在端口上运行8002,并且客户端从端口连接到侦听服务器56442

我试图通过查看netstat输出条目找出一种区分服务器和客户端的方法。

为什么当套接字处于FIN_WAIT2状态时进程 ID/描述不出现?

tcp socket netstat

6
推荐指数
1
解决办法
4519
查看次数

如何检查套接字是否正在侦听?

我想定期观察一个套接字状态,所以我需要通过命令检查套接字状态。

目前我列出了所有侦听套接字ss并通过grep.

ss -l | grep -q /run/php/php7.0-fpm.sock
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来检查套接字的状态?

socket ss

6
推荐指数
1
解决办法
6685
查看次数

如何持续监控连接到本地套接字的 PID?

一些本地进程在端口 1234 上连接和断开连接到 127.0.0.1。

我想记录到此端口(或服务器进程)的所有连接。

我试过了

 ss -tpn | grep 1234 
Run Code Online (Sandbox Code Playgroud)

它显示一个列表,但随后停止;它不会继续记录新连接,因此我无法捕获所有者的套接字或 PID。

我可以使用什么工具来发现连接和断开套接字的 PID?

networking process socket ss

6
推荐指数
1
解决办法
1563
查看次数