Ubuntu разрезает собственный источник питания: что делать до отключения электроэнергии?

У меня есть файловый сервер Ubuntu, который я хотел бы включить / выключить, используя электрическую розетку с дистанционным управлением. У меня также есть устройство, которое принимает и отправляет сигналы дистанционного управления; он подключается через USB; Я использую вспомогательную программу для отправки сигналов. Поэтому вместо прямой отправки сигнала отключения питания на розетку, я посылаю сигнал отключения к Ubuntu. Идея заключается в том, что Ubuntu заставляет отключать и отключает собственный источник питания. Это позволяет мне позже запускать компьютер, переключаясь на розетку с помощью пульта дистанционного управления.

Как я понимаю, идеально, мощность резания должна быть выполнена в /etc/rc0.d/S90halt, правильно? Но в этот момент моя вспомогательная программа, которая могла отправить сигнал отключения питания в розетку, уже была убита.

Какие у меня есть варианты? Можно ли запустить программу удаленного управления? Могу ли я запустить его в S90halt, даже если диск уже размонтирован?

1
задан 20 July 2017 в 11:24

2 ответа

Я нашел способ, как это сделать:

При загрузке я запускаю свою вспомогательную программу удаленного управления как процесс nohup'd. Однако во время выключения он блокируется S20sendsigs. Поэтому я запускаю его снова, используя новый скрипт S21remotecontrol, который снова использует nohup. Вспомогательная программа запускает встроенный веб-сервер. Таким образом, мне просто нужно было добавить curl http://localhost:8081/poweroff в S90halt.

Я не уверен, почему curl действительно доступен в S90halt, потому что на данный момент все файловые системы должны быть размонтированы. Тем не менее, он действительно работает. Моя работа не используется: я добавил параметр задержки, чтобы curl мог быть вызван перед размонтированием, но задержка команды переключения несколько секунд.

Важно! Вспомогательная программа не должна записывать файл журнала, так как после сбоя в процессе выключения и сбоя программы может произойти сбой. Для запуска помощника я использую: nohup command >/dev/null 2>&1 &.

0
ответ дан 18 July 2018 в 10:00

Я нашел способ, как это сделать:

При загрузке я запускаю свою вспомогательную программу удаленного управления как процесс nohup'd. Однако во время выключения он блокируется S20sendsigs. Поэтому я запускаю его снова, используя новый скрипт S21remotecontrol, который снова использует nohup. Вспомогательная программа запускает встроенный веб-сервер. Таким образом, мне просто нужно было добавить curl http://localhost:8081/poweroff в S90halt.

Я не уверен, почему curl действительно доступен в S90halt, потому что на данный момент все файловые системы должны быть размонтированы. Тем не менее, он действительно работает. Моя работа не используется: я добавил параметр задержки, чтобы curl мог быть вызван перед размонтированием, но задержка команды переключения несколько секунд.

Важно! Вспомогательная программа не должна записывать файл журнала, так как после сбоя в процессе выключения и сбоя программы может произойти сбой. Для запуска помощника я использую: nohup command >/dev/null 2>&1 &.

0
ответ дан 24 July 2018 в 19:29

Другие вопросы по тегам:

Похожие вопросы: