Никакие такие вещи как события не реализованы в, связывают, этому не нужно это.
Вы могли осмотреть применимые брандмауэры, кто используется в некоторых организациях для ограничения доступа к некоторым пользователям. Там у Вас было бы больше возможностей достижения, что Вы хотите.
Установка маршрутов кажется хорошей идеей также в цели, с чем Вы хотите достичь, связывают, и инициированное выполнение сценария будет неэффективно также: Вы имеете к:
for each dest IP
look up through your database
if match set the route
then the OS will see and use the root
Установка загрузок маршрутов не является проблемой и не будет влиять на производительность значимым способом. Сколько маршрутов Вы думаете, что корпоративные маршрутизаторы имеют? сотни? не совсем... И у них не обязательно есть необычная аппаратная конфигурация. Серьезно, Вы в порядке, серьезные операционные системы специально предназначены, чтобы обработать много маршрутов и оптимизировать взгляд.
Кроме того, то, что Вы хотели сделать во-первых, использует базу данных сверху таблицы маршрутизации, которая была бы другим видом базы данных. Сохраните это простым. На серверах BGP много маршрутов на самом деле выбраны/предпочтены по политическим/финансовым причинам, каждый ISP/организация может сделать это, и они все добавляют определенные маршруты с этой целью. Стоимость транзита или постановления суда часто является причиной таких мер.
'Общий' подход был бы
$ sudo update-rc.d -f servicename remove
удалить servicename из любого runlevel для запуска автоматически.
Чтобы повторно включить значения по умолчанию, сделать
$ sudo update-rc.d servicename defaults
Вы могли использовать sysv-rc-conf для управления, runlevels (настройте, какие сервисы, как предполагается, запускаются в который runlevels).
Это довольно просто:
sudo apt-get install sysv-rc-conf
sudo sysv-rc-conf
space
ключ для переключения флажка. По умолчанию Debian поставлется с SysVinit. Какие сервисы выполняются, в котором runlevels управляют через символьные ссылки в /etc/initN.d
(N = от 0 до 6, при этом 2–5 является нормальный runlevels; S для сервисов, запущенных во время начальной загрузки). Посмотрите Dmitry Vasilyanov и ответы gertvdijk для способов настроить эти символьные ссылки.
Мне нравится использовать file-rc
пакет, который заменяет символьные ссылки простым текстовым файлом /etc/runlevel.conf
.
Если Вы собираетесь выключить много сервисов, или если Вы хотите препятствовать тому, чтобы сервис запустился, когда он установлен или обновлен (известная проблема о Debian), можно определить локальную службу, запускают политику. Запишите названный сценарий /usr/sbin/policy-rc.d
это проводит init политику сценария по Вашему выбору. Посмотрите /usr/share/doc/sysv-rc/README.policy-rc.d
в Вашей системе для деталей. Проведение всей политики является небольшим количеством работы, но можно заставить простые случаи работать; например, если сценарий просто содержит exit 101
, затем никакой init сценарий никогда не будет выполняться (это удобно для систем, установленных в chroot).