как автоматически выгрузить модули при остановке сервиса?
Dmitri 30 июля, 2011 - 20:41
как автоматически выгружать модуль при остановке сервиса?
что бы команда
/etc/init.d/xdm stop
автоматом выполняла
modprobe -r nvidia
переписывание скриптов конечно вариант, но каждое обновление будет продолжаться значительно дольше.
я надеюсь что есть стандартный механизм.
»
- Для комментирования войдите или зарегистрируйтесь
> переписывание скриптов
> переписывание скриптов конечно вариант, но каждое обновление будет продолжаться значительно дольше.
я надеюсь что есть стандартный механизм.
? осиль dispatch-conf -> буковка z
Мда..
Особенно круто выйдет, если с очередным обновлением в означенном конфиге / инит-скрипте изменится нечто весьма существенное.
А еще более круто, если бага сия вылезет не сразу, а спустя энное время после "буковки z в dispatch-conf" или аналогичного в etc-update.
Топикстартеру - имхо нормальный путь - нечто вроде враппера к start-stop-daemon с анализом чего где стопается и соответствующим убиванием модулей.
Да пребудет с тобой великий Linux.
А зачем запить всё подряд?
А зачем запить всё подряд? если предлагает изменить твою строку, то z если нет u и дописать строчку(так сложно?).
ну ок..
ну ок..
Если не ошибаюсь, ценность любого проекта рассчитывается (очень приближенно) как отношение его пользы к трудозатратам на внедрение.
В твоей версии знаменатель соотношения неопределен при обновлении системы, в моем - равен единице (1 дополнительный скрипт).
Числитель походу одинаков.
Да пребудет с тобой великий Linux.
> Если не ошибаюсь, ценность
> Если не ошибаюсь, ценность любого проекта рассчитывается (очень приближенно) как отношение его пользы к трудозатратам на внедрение.
Признаю, не прав.
> нечто вроде враппера к start-stop-daemon с анализом чего где стопается и соответствующим убиванием модулей.
сохраняй без .sh и замени им xdm(в default)
Уже лучше :) Но давайте таки
Уже лучше :)
Но давайте таки расширим, унифицируем,что-ли сие дело.
Я так понимаю ситуация, описанная топикстартером, достаточно частный случай (всего-то xdm и видеодрова).
А что насчет cups, alsa, net.wlan и черти знает чего еще другого, что напихано заботливыми юзерами в систему?
Многое ведь тянет под себя некие модули, которые не всегда (а в случае с ноутбуком - вообще редко) нужны.
А что если так:
1. сам бинарник start-stop-daemon враппим через одноименный скрипт
2. в этом скрипте делаем анализ по передаваемым start-stop-daemon'у параметрам, а именно --pidfile - что именно мы киляем, или по --exec - что именно мы запускаем
3. логику запуска/убивания соответствующих модулей прописываем как нам хочется (при снятии модуля имхо придется творить нечто вроде:
sleep ХХ && rmmod YYY & дабы нативный start-stop-daemon потом несильно ругался и успевал отработать)
4. запускаем таки нативный start-stop-daemon, передавая ему все пришедшие к нашему скрипту параметры
PS специально не привожу тут никаких конкретных решений, ибо идея важнее.
PPS как маленькая подсказка - в PATH, которую знает root (или от кого там запускаются инит-скрипты), при загрузке системы первым добавляем наш каталог, где лежит наш же враппер, называемый тоже start-stop-daemon (хоть в тоv же /usr/local/bin), что даст следующие бонусы:
1. враппер по-любому запустится, т.к. будет найден первым в PATH
2. не нужно ничего менять даже при апдейте openrc (именно там содержится нативный start-stop-daemon)
3. если вдруг что-то пойдет не так (ну мало-ли) - с любого liveCD спокойно удаляем наш враппер и система остается полностью рабочей.
PPPS писано под воздействием значительного количества пива, но имхо, право на жизнь имеет (в теории). Попробую как-нить на своем же ноутбуке...
Да пребудет с тобой великий Linux.
> 1. сам бинарник
> 1. сам бинарник start-stop-daemon враппим через одноименный скрипт
Разве у runscript`а не свой $PATH?
Или я не о том?
Есть интересная "приблуда" -
sys-fs/inotify-tools
, с помощью коей можно отследить нужные нам изменения в фс, например:if inotifywait --event delete_self /home/абрам_тюбитейкин/.serverauth.* ; then eval modprobe -r nvidia ; fi
При выгрузке иксов уничтожается файлик ~/.serverauth.*, что прямо заставляет нас
восстановить прядок и демократиюпроизвести "выдергындер" модуля nvidia.Ну а как запущать данную инструкцию до загрузки иксов - додумаетесь сами.
стандартный механизм?
идея про обертки, и редактирование init скриптов с использованием vimdiff приходит в первую очередь.
приведенный пример с xdm и nvidia один из наиболее явных, и как выше заметили в системе может быть еще кучу всего ...
alsasound и все модули звуковой карточки
сеть и модуль сетевушки
обертки хорошо но это костыли
и судя по отзывам стандартного механизма для неиспользуемых модулей нету.
может в b.g.o feature request наваять?