Ubuntu ограничивает выполнение команд curl в 18.04 - PullRequest
0 голосов
/ 27 февраля 2019

Я использовал правило 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 &

Всегда указывается тайм-аут команды curl, хотя я увеличил тайм-аут до 30 секунд.

Что за изменения, внесенные в Ubuntu 18.04, мешают мне использовать вышеуказанную реализацию?

1 Ответ

0 голосов
/ 27 февраля 2019

Я нашел ответ в следующей теме.

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

...