Я согласен с thrig , это действительно похоже на ошибку. Прямая запись в procfs
- очевидный обходной путь. Если вам нужно использовать утилиту sysctl
, другой обходной путь - добавить новую строку:
sysctl -w net.ipv4.ip_local_reserved_ports="
"
Завершающая новая строка не влияет на большинство, если не на все настройки sysctl.
Мой обходной путь для этого состоял в том, чтобы управлять этим таким образом:
Одно правило udev для действия вставки USB.
Сценарии, поступающие тем временем, сами монтируют/размонтируют диск.
Одно правило udev для действия удаления USB.
USB вставляется
Я выполняю один скрипт, который просто сохраняет имя устройства в файл. Я могу добавить любой другой скрипт в это правило:
ACTION=”add”, KERNEL=”sd*[0-9]*”, SUBSYSTEMS=”usb”, RUN+=”/bin/sh my-usb-inserted.sh”, RUN+=”/bin/sh myownscript.sh”
Здесь myownscript.sh
будет монтировать устройство с помощью pmount , что позволяет обычным пользователям монтировать/демонтировать съемные диски. Я могу вызывать любые другие скрипты после них, пока я размонтирую модуль в каждом из них до того, как его использует следующий.
USB удаляется
Здесь простой скрипт удаляет файл, созданный my-usb-inserted.sh
, так что мы знаем, что внутри скриптов не было вставлено никаких флешек.
ACTION=”remove”, KERNEL=”sd*[0-9]*”, SUBSYSTEMS=”usb”, RUN+=”/bin/sh usb-removed.sh”
Этот обходной путь не учитывает необходимость работы с более чем одним USB-накопителем.
См. также: