Ubuntu限制在18.04中运行curl命令

时间:2019-02-27 13:51:44

标签: ubuntu curl ubuntu-18.04

当特定设备连接到我的机器时,我已使用Udev规则调用curl命令。它与Ubuntu 14.04完美配合。 将机器升级到Ubuntu 18.04后,它将停止工作。

我的udev规则就是这样

  

ACTION ==“ add | remove”,ENV {PRODUCT} ==“ acd / 3520 / *”,RUN + =“ / home / leapset / system / devicemanager / trigger-device-connection.sh”

在脚本内部,它像下面一样调用curl命令

  

卷曲-X GET   'http://127.0.0.1:8080/moxy/rest/device/connectivity/change'-m 2 2>   / dev / null&

尽管我将超时时间增加到30秒,但它总是显示curl命令超时。

在Ubuntu 18.04内部进行的哪些更改使我无法使用上述实现?

1 个答案:

答案 0 :(得分:0)

我在以下主题中找到了答案。

https://lists.freedesktop.org/archives/systemd-devel/2018-August/041195.html

似乎对Udev服务的限制使我们无法使用上述功能。

默认的服务配置(/lib/systemd/system/udev.service)阻止我们调用任何IP

[Service]
Type=notify
OOMScoreAdjust=-1000
Sockets=systemd-udevd-control.socket systemd-udevd-kernel.socket
Restart=always
RestartSec=0
ExecStart=/lib/systemd/systemd-udevd
KillMode=mixed
WatchdogSec=3min
TasksMax=infinity
MountFlags=slave
MemoryDenyWriteExecute=yes
RestrictRealtime=yes
RestrictAddressFamilies=AF_UNIX AF_NETLINK AF_INET AF_INET6
SystemCallArchitectures=native
LockPersonality=yes
IPAddressDeny=any

为解决该问题,我们在文件底部添加了另一个条目。

IPAddressAllow=127.0.0.1

之后,Udev能够通知设备已插入POS