LINUX.ORG.RU

Вопросы про runlevel, rc_parallel, профили работы системы

 ,


1

2

1. Делал ли кто-нибудь профили работы системы? Поделитесь опытом.

Под профилями работы системы я подразумеваю такую штуку: есть какое-то количество профилей работы — дома, у друга, на учёбе, в гостях, без электричества etc. В зависимости от активного профиля активируются те или иные службы, wpa_supplicant подключается к нужной сети и дёргает dhcpcd.

В домашней сети, например, запускается samba, открываются соответствующие порты, упор делается в производительность, на энергосбережение забиваем. Без электричества — вырубаем всё что можно и нельзя, оставляя лишь необходимое для минимального ряда задач (на ЛОРе посидеть, быдлокод погенерировать…).

Что для чего дёргается — знаю, задолбало лишь всё это вручную делать.

Вообще, в идеале эти профили должны уметь друг на друга накладываться, вроде тегов.

2. Как проще всего выявить кольцевые зависимости в скриптах инициализации? Уже какой раз пробую rc_parallel, и всё они ноют, что нужный сервис не работает, и уходят в бесконечную рекурсию. Зависимости явно глупые (а-ля dhcpcd ждёт запуска xdm или что-то вроде того там мелькало — ctrlaltdel был отключен, я вырубил кнопкой, лог не сохранился).

Хорошо бы вообще строить визуальные карты зависимостей (возможно, правильнее будет сказать «графы»). Может, кто за долгие годы существования openrc (или sysvinit — не знаю, что здесь ключевое) успел написать скрипт для этой задачи.

3. Как заставить сервис-клон /etc/init.d/local запускать /etc/local.d/*.stop, даже если система инициализации считает, что этот «демон» не запущен?

★★★

Твою ведь, ну кто тебе мешает сделать несколько профилей под разные аккаунты? /home понятное дело личный, но файлопомойку можно и в другом месте разместить, предоставив доступ кому надо.
Насчёт runlevel ты загнул. Он либо есть конкретный, либо нет. Насчёт служб - тем более. Хотя можно службу запустить и из .*rc, это да, но рутом, а не юзером. Следовательно редактировать /etc/sudoers, короче, ерунду ты затеял. В принципе можно сделать, но геморроя - выше крыши, а результат - сомнителен.

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

Задумавшись, я осознал глупость первого вопроса. Ведь достаточно написать скрипт.

Возник он из-за причин остальных вопросов, создающих ощущение неуправляемости и чрезмерной самостоятельности OpenRC. Потому что как я буду пихать ncurses-диалог с выбором профиля в загрузку, если эта зараза захочет запустить его, например, после xdm?

batekman ★★★
() автор топика

по первому вопросу:

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

а так фишка интересная и полезная.

kma21 ★★★★
()

Если ты про runlevel, то у меня из три:
5 = GUI - обычный, kdm (графический логин).
4 = Service - для maintenance системы, запускается минимум демонов, командная строка. Искользую во основном во время тотального бекапа.
3 = CLI - командная строка с возможностью сделать startx. Полезно когда иксы по какой-то причине ломаются.
Потом в grub 3 пункта загрузки. Удобно.

Я бы еще хотел бы междунимим переключаться, но что-то init 3|4|5 не срабатывает (давно, правда, пробовал).

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

У OpenRC есть свои ранлевелы, они представляют собой каталоги в /etc/runlevels, в которых лежат симлинки на сервисы. Вот их я и имел ввиду. Они переключаются :)

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

Ну вот, твой пост заставил меня погуглить. У меня openrc, и оказалось, что там runlevel переключается не init, а rc. Как-нибудь поэкспериментирую.

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