(решено) не запускается rc.local

Цитата: edo1 от 25/09/2019, 03:47думал, куда положить свой маленький скрипт для начальной конфигурации, увидел /etc/rc.d/S99rc.local - подумал, что хорошее место.
положил, руками запустил - работает, сделал fs save, перезагрузился - не сработало.
потом вспомнил, что у run-parts есть некоторые требования к именам файлов, переименовал в S99rclocal - заработало
P.S. на этот скрипт есть симлинк /etc/rc.local, толком не проверял, но вроде бы он нигде не используется, ИМХО можно и удалить.
думал, куда положить свой маленький скрипт для начальной конфигурации, увидел /etc/rc.d/S99rc.local - подумал, что хорошее место.
положил, руками запустил - работает, сделал fs save, перезагрузился - не сработало.
потом вспомнил, что у run-parts есть некоторые требования к именам файлов, переименовал в S99rclocal - заработало
P.S. на этот скрипт есть симлинк /etc/rc.local, толком не проверял, но вроде бы он нигде не используется, ИМХО можно и удалить.

Цитата: sfstudio от 25/09/2019, 11:53На самом деле инит тут из 2х частей. S часть стартует run-parts всегда безусловно при загрузке, W часть стартует из скриптов управления в нужной последовательности и ровно когда надо и последовательность определяется там не циферкой (при загрузке, при применении настроек и т.д.). Причём сначала идёт S до switchstage далее передаём управление линейному internet.sh (не переименовываю ради совместимости) который делает кучу подготовительных вещей в т.ч. запуск W сервисов через service restart, затем switchstage запускает UI и делает рескан USB и вот тут и надо вызывать rc.local если хочется поведения примерно такого как в большом SysVinit.
Т.е. если нужно получить именно логику аналогичной rc.local, т.е. исполнение после полной загрузки устройства, то вызывать его надо последним в switchstage. См. гит.
Использование rc.local в нелинейном ините само по себе не очень красиво.
Есть хуки на разные случаи жизни. Но что бы знать откуда лучше исполнять - нужно знать что то, что предполагается исполнять делает. См README в корне GIT.
Вызов /etc/rc.d/rc.local поправил, но можно было вообще грохнуть, чисто дань совместимости.
На самом деле инит тут из 2х частей. S часть стартует run-parts всегда безусловно при загрузке, W часть стартует из скриптов управления в нужной последовательности и ровно когда надо и последовательность определяется там не циферкой (при загрузке, при применении настроек и т.д.). Причём сначала идёт S до switchstage далее передаём управление линейному internet.sh (не переименовываю ради совместимости) который делает кучу подготовительных вещей в т.ч. запуск W сервисов через service restart, затем switchstage запускает UI и делает рескан USB и вот тут и надо вызывать rc.local если хочется поведения примерно такого как в большом SysVinit.
Т.е. если нужно получить именно логику аналогичной rc.local, т.е. исполнение после полной загрузки устройства, то вызывать его надо последним в switchstage. См. гит.
Использование rc.local в нелинейном ините само по себе не очень красиво.
Есть хуки на разные случаи жизни. Но что бы знать откуда лучше исполнять - нужно знать что то, что предполагается исполнять делает. См README в корне GIT.
Вызов /etc/rc.d/rc.local поправил, но можно было вообще грохнуть, чисто дань совместимости.

Цитата: RoxsAndy от 25/09/2019, 14:10В /etc/rc.d/rcS есть тоже неиспользуемый симлинк:
ln -sf /etc/rc.d/W* /var/run/rc1.d Тоже не нашёл где он теперь используетя в нынешнем виде. Похоже остался от переделки инита в былые времена.
В /etc/rc.d/rcS есть тоже неиспользуемый симлинк:
ln -sf /etc/rc.d/W* /var/run/rc1.d Тоже не нашёл где он теперь используетя в нынешнем виде. Похоже остался от переделки инита в былые времена.

Цитата: sfstudio от 25/09/2019, 14:14Это нужно для обратной совместимости с пакетами кастомизации.
Это нужно для обратной совместимости с пакетами кастомизации.