ubuntu - Ubuntu 在 18.04 中限制运行 curl 命令
问题描述
当特定设备连接到我的机器时,我使用 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 命令,如下所示
curl -X GET ' http://127.0.0.1:8080/moxy/rest/device/connectivity/change ' -m 2 2> /dev/null &
尽管我已将超时时间增加到 30 秒,但它总是说 curl 命令超时。
在 Ubuntu 18.04 中进行了哪些更改,阻止我使用上述实现?
解决方案
我在下面的帖子中找到了答案。
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
推荐阅读
- python - 在 tweepy Streaming 中拉推文时在末尾排除链接
- typescript - 无法在不同浏览器的打字稿中使用 Element.requestFullscreen()
- typescript - 打字稿自定义类型不可分配给自定义类型
- flutter - 如何滚动到 ListView 中的下一项
- javascript - TypeError:无法访问属性“错误”,数据未定义
- django - 将参数传递给 Django 中导航栏菜单的模板
- c# - XSLT 1.0 - 用 HTML 包装的多个子节点模板
- python-2.7 - python2.7 paramiko - 远程运行脚本
- c# - 从 Windows 服务中的 oracle db 访问数据
- python - 通过python中的唯一值计算数组组的平均值