У меня есть файловый сервер Ubuntu, который я хотел бы включить / выключить, используя электрическую розетку с дистанционным управлением. У меня также есть устройство, которое принимает и отправляет сигналы дистанционного управления; он подключается через USB; Я использую вспомогательную программу для отправки сигналов. Поэтому вместо прямой отправки сигнала отключения питания на розетку, я посылаю сигнал отключения к Ubuntu. Идея заключается в том, что Ubuntu заставляет отключать и отключает собственный источник питания. Это позволяет мне позже запускать компьютер, переключаясь на розетку с помощью пульта дистанционного управления.
Как я понимаю, идеально, мощность резания должна быть выполнена в /etc/rc0.d/S90halt, правильно? Но в этот момент моя вспомогательная программа, которая могла отправить сигнал отключения питания в розетку, уже была убита.
Какие у меня есть варианты? Можно ли запустить программу удаленного управления? Могу ли я запустить его в S90halt, даже если диск уже размонтирован?
Я нашел способ, как это сделать:
При загрузке я запускаю свою вспомогательную программу удаленного управления как процесс nohup'd. Однако во время выключения он блокируется S20sendsigs. Поэтому я запускаю его снова, используя новый скрипт S21remotecontrol, который снова использует nohup. Вспомогательная программа запускает встроенный веб-сервер. Таким образом, мне просто нужно было добавить curl http://localhost:8081/poweroff в S90halt.
Я не уверен, почему curl действительно доступен в S90halt, потому что на данный момент все файловые системы должны быть размонтированы. Тем не менее, он действительно работает. Моя работа не используется: я добавил параметр задержки, чтобы curl мог быть вызван перед размонтированием, но задержка команды переключения несколько секунд.
Важно! Вспомогательная программа не должна записывать файл журнала, так как после сбоя в процессе выключения и сбоя программы может произойти сбой. Для запуска помощника я использую: nohup command >/dev/null 2>&1 &.
Я нашел способ, как это сделать:
При загрузке я запускаю свою вспомогательную программу удаленного управления как процесс nohup'd. Однако во время выключения он блокируется S20sendsigs. Поэтому я запускаю его снова, используя новый скрипт S21remotecontrol, который снова использует nohup. Вспомогательная программа запускает встроенный веб-сервер. Таким образом, мне просто нужно было добавить curl http://localhost:8081/poweroff в S90halt.
Я не уверен, почему curl действительно доступен в S90halt, потому что на данный момент все файловые системы должны быть размонтированы. Тем не менее, он действительно работает. Моя работа не используется: я добавил параметр задержки, чтобы curl мог быть вызван перед размонтированием, но задержка команды переключения несколько секунд.
Важно! Вспомогательная программа не должна записывать файл журнала, так как после сбоя в процессе выключения и сбоя программы может произойти сбой. Для запуска помощника я использую: nohup command >/dev/null 2>&1 &.