On Mon, 30.03.2009 18:13:00 , Alexander GQ Gerasiov wrote: > Mon, 30 Mar 2009 14:20:55 +0300 > Тихон Тарнавский <[email protected]> wrote: > > > Создал скрипт из одной строчки (echo mem >/sys/power/state), прописал > > его в /etc/acpi/events/lidbtn. При закрытии крышки скрипт отрабатывает > > дважды, т.е. вот с этой командой ноут засыпает, а после включения > > засыпает ещё рах -- включается лишь со второго раза. Это точно именно > > этот скрипт запускается два раза: проверял, заменив строку на > > echo 1>>/home/t/tmp/tmp. И запускается точно оба раза из одного и того > > же места: больше нигде в /etc/acpi/ он не упоминается, и если из > > lidbtn убрать, засыпания не происходит. > > > > Прошу помочь разобраться, где корень проблемы; или хотя бы подсказать, > > как проще её обойти. Спасибо. > Для начала проверить, что генерится одно событие при помощи > acpi_listen, Затем проверить в логах acpid что он пишет. В лог я уже смотрел -- он пустой. События генетирся таки два. Но я был уверен, что это оттого, что lidbtn ведь отвечает _и_ за закрытие, _и_ за открытие крышки; т.е. нажал-отпустил кнопку -- вот и есть два события. А в случае с засыпанием второе событие по идее создаваться не должно, т.к. в момент открытия крышки ноут спит. Проверил: написал в тестовом варианте date вместо echo 1 -- таки да, вывод происходит в момент нажания кнопки и в момент отпускания. А в варианте с засыпанием хотя второе событие создаваться не должно, но оно всё же создаётся; проверил так: нажал кнопку пальцем и включил не отпуская -- всё отработало как надо, а когда отпустил -- тогда уже выключилось ещё раз. Видимо, в момент просыпания сверяется состояние кнопки -- и, если оно изменилось, всё же создаётся ещё одно событие. Получается, надо либо всё же читать /proc/acpi/button/lid/*/state, либо, как написал Иван, обходить путём контроля чётности. И действительно, оба варианта работают. Понятно, что первый -- более правильный. Его и оставил. Спасибо за наводку.
-- С уважением, Тихон Тарнавский. http://linuxforum.ru http://posix.ru -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected]

