как автоматически выгрузить модули при остановке сервиса?

как автоматически выгружать модуль при остановке сервиса?
что бы команда
/etc/init.d/xdm stop
автоматом выполняла
modprobe -r nvidia

переписывание скриптов конечно вариант, но каждое обновление будет продолжаться значительно дольше.
я надеюсь что есть стандартный механизм.

> переписывание скриптов

> переписывание скриптов конечно вариант, но каждое обновление будет продолжаться значительно дольше.
я надеюсь что есть стандартный механизм.
? осиль dispatch-conf -> буковка z

Мда..

tn1 написал(а):
осиль dispatch-conf -> буковка z

Особенно круто выйдет, если с очередным обновлением в означенном конфиге / инит-скрипте изменится нечто весьма существенное.
А еще более круто, если бага сия вылезет не сразу, а спустя энное время после "буковки z в dispatch-conf" или аналогичного в etc-update.

Топикстартеру - имхо нормальный путь - нечто вроде враппера к start-stop-daemon с анализом чего где стопается и соответствующим убиванием модулей.

Да пребудет с тобой великий Linux.

А зачем запить всё подряд?

А зачем запить всё подряд? если предлагает изменить твою строку, то z если нет u и дописать строчку(так сложно?).

ну ок..

ну ок..

Если не ошибаюсь, ценность любого проекта рассчитывается (очень приближенно) как отношение его пользы к трудозатратам на внедрение.
В твоей версии знаменатель соотношения неопределен при обновлении системы, в моем - равен единице (1 дополнительный скрипт).
Числитель походу одинаков.

Да пребудет с тобой великий Linux.

> Если не ошибаюсь, ценность

> Если не ошибаюсь, ценность любого проекта рассчитывается (очень приближенно) как отношение его пользы к трудозатратам на внедрение.
Признаю, не прав.
> нечто вроде враппера к start-stop-daemon с анализом чего где стопается и соответствующим убиванием модулей.

#!/bin/bash

if [ "$1" = "stop" ]; then
    /etc/init.d/xdm "$1"
    modprobe -r nvidia
else
    /etc/init.d/xdm "$1"
fi

сохраняй без .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 наваять?

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".