LINUX.ORG.RU

Корректный перезапуск ОС из стартового сценария

 , стартовые сценарии


0

1

Возможно хочу странного, но как корректнее сделать следующее:

Система (ARM Linux 2.6.28, скорее всего клон дебиан) стартует по дефолту на runlevel 2. Я записал в /etc/rc2.d некий скрипт, который будет выполнен при старте системы. Скрипт при отсутствии определенного файла выполняет свою основную функцию (обновление конфигурации спец. ПО) и должен перезагрузить контроллер, чтобы новая конфигурация вступила в силу. При наличии флагового файла скрипт ничего не делает и загрузка идет в нормальном режиме.

Понимаю, что выглядит дико, но пока что до системы есть доступ только по некоему аналогу FTP, который для загруженных файлов может ставить атрибут исполнимости. at и crond нет, голый busybox. Кроме того перезапуск является требованием обновляемого софта.

Сейчас в скрипте вызывается shutdown и это напрягает.

Для дебиана-подобных проще всего добавить запуск скрипта в /etc/rc.local, а не возиться с runlevel'ами.

cat <<EOF>> /etc/rc.local
FLAG=/var/run/flag
if [ ! -e $FLAG ]; then
        # do something important
        touch $FLAG
        reboot
fi
EOF

Или я не правильно вопрос понял?

beastie ★★★★★
()
Последнее исправление: beastie (всего исправлений: 1)
Ответ на: комментарий от beastie

Вопрос понят верно.

Изначально смотрел именно на rc.local, но скрипт надо выполнить до запуска обновляемого софта. Последний стартует из rc2.d.

Напрягает именно ребут из стартовых сценариев.

Пока писал ответ, подумал, что у меня можно разделить логику на 2 этапа. И перезагрузку сделать через rc.local. Корректнее получается

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