LINUX.ORG.RU

Запуск скрипта при выключении компьютера


0

0

Кто ни будь подскажет, как правильно останавливать сервис при выключении хоста?

Дистрибутив Mandriva
Создал скрипт, который пониает start и stop.
Положил в /etc/init.d

Добавил ссылки S80vmstart в /etc/rc5.d
Все стартует нормально
Ссылки для остановки K80vmstat в /etc/rc0.d /etc/rc1.d /etc/rc6.d

Но скрипт для остановки даже не вызывается!
Почему?


Ответ на: комментарий от Nastishka

Нет, не отмечает? Это так принципиально? Там же вроде pid процесса записывается, но мне это не особо нужно для останови.

dvalov
() автор топика

Странно все это...
Сделал все как для скрипта sshd только при остановке sshd выполняется, а мой нет!

Может его надо еще где ни будь прописать?

dvalov
() автор топика
Ответ на: комментарий от dvalov

Может его не 80 останавливать а раньше? Если в него вписать echo hello > /tmp/very.special.tmp.file.log то оно там появится?

sin_a ★★★★★
()
Ответ на: комментарий от sin_a

Пробовал....
Тоже самое.
если строчку для протоколирования вставляешь, то из sshd она в файл вставляется, а из моего vmstart нет
:(

dvalov
() автор топика
Ответ на: комментарий от dvalov

Мистика. Или глюки мандривы. Типа сузёвого яста, когда сам что хочешь делаешь а системе пофиг, она по ясту живёт.

sin_a ★★★★★
()
Ответ на: комментарий от dvalov

>> Нет, не отмечает? Это так принципиально? Там же вроде pid процесса записывается, но мне это не особо нужно для останови.

Это принципиально. И пиды пишутся в /var/run, а в subsys создаются пустые файлы.

(сам мандривой не пользовался)

sergej ★★★★★
()

Есть же команда update-rc.d специально для установки и удаления ссылок сценариев инициализации. Или в Mandriva всё так плохо, что нужно создавать свои велосипеды?

Здесь можно найти простой пример использования.

Slimer
()
Ответ на: комментарий от Slimer

Ну что же... Проблема решена! И дело даже не в том, как установлен скрипт ( в mandriva есть chkconfig)

действительно надо создавать пустой файл в /var/lock/subsys файл должен называться так же как скрипт.

для меня проблема решилась добавкой строчкой touch /var/lock/subsy/vmstart

она должна выполняться когда сервис стартует mandriva сама удаляет его, когда сервис останавливается

dvalov
() автор топика
Ответ на: комментарий от dvalov

в mandriva есть chkconfig

Спасибо. Сейчас посмотрел, в debian она тоже есть, но не является основной.

из описания пакета chkconfig

In Debian, there are several tools with similar functionality, but users coming from other Linux distributions will find the tools in this package more familiar.

Slimer
()
Ответ на: комментарий от dvalov

Прааавильно.

А теперь объясню, зачем эти файл в /var/run/subsys нужны: представьте себе, что вы отводите систему с runlevel 5 на runlevel 3. Необходимо остановить только те сервисы, которые активны в R5 но не активны в R3, и стартовать только те, которые активны в R3 и не активны в R5.

Если у нас есть /var/run/subsys, то мы смотрим туда, получаем имена запущеных сервисов, для каждого проверяем нужен ли он в новом runlevel и если не нужен, то останавливаем. Потом пробегаем по списку тех, кто нужен в новом runlevel, и если они не отмечены в /var/run/subsys, то стартуем их.

А как это обойти без /var/run/subsys? Только введя его аналог :-)

Nastishka ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.