LINUX.ORG.RU

История изменений

Исправление firkax, (текущая версия) :

Нет, не круто. Следить за состоянием питания может захотеть кто угодно, а не только запущеный инитом демон. Так что надо не «рассылать по списку» а широковещательно слать всем кто подписался. Только при этом надо не забывать, что всё это не должно протекать через chroot, но должна быть возможность опционально выдать доступ. Решение очевидно - что-то в файловой системе, на которое можно подписаться и слушать события. Чего тут не хватает так это широковещательного unix-сокета (когда сервер создаёт его, шлёт в него датаграммы, а получают их все кто к нему подключился, без listen и accept на стороне сервера). Совершенно не обязательно рассылать это должна система инициализации, лучше пусть будет какой-нить маленький powerd.

А вообще, конкретно с батареей, можно чуть костыльно и сейчас: создаёшь файл, пишешь в него состояние, а все интересующиеся ставят на него inotify/kqueue и читают при изменении. Я кстати такого демона сделал для своего WM, чтобы не лезть из гуи куда не надо.

А ещё можно в ядре реализовать epoll/kqueue на что-нить в /dev (или в sysfs если линукс) которое за питание отвечает и тогда вообще не понадобится никакая юзерспейсная рассылка.

Исходная версия firkax, :

Нет, не круто. Следить за состоянием питания может захотеть кто угодно, а не только запущеный инитом демон. Так что надо не «рассылать по списку» а широковещательно слать всем кто подписался. Только при этом надо не забывать, что всё это не должно протекать через chroot, но должна быть возможность опционально выдать доступ. Решение очевидно - что-то в файловой системе, на которое можно подписаться и слушать события. Чего тут не хватает так это широковещательного unix-сокета (когда сервер создаёт его, шлёт в него датаграммы, а получают их все кто к нему подключился, без listen и accept на стороне сервера). Совершенно не обязательно рассылать это должна система инициализации, лучше пусть будет какой-нить маленький powerd.

А вообще, конкретно с батареей, можно чуть костыльно и сейчас: создаёшь файл, пишешь в него состояние, а все интересующиеся ставят на него inotify/kqueue и читают при изменении. Я кстати такого демона сделал для своего WM, чтобы не лезть из гуи куда не надо.