#debian #raspberry-pi
#debian #raspberry-pi
Вопрос:
У меня есть скрипт, который отправляет мне уведомление о переносе, когда загружается мой безголовый Raspberry Pi (под управлением Debian Wheezy). Я также настроил его для подключения к OpenVPN при загрузке.
Проблема 1. Проблема в том, что он отправляет это уведомление до установления соединения OpenVPN. Поэтому мне отправляется IP-адрес WAN, а не наш защищенный IP-адрес VPN.
Проблема 2. Он запускает уведомление о переносе при завершении работы системы. Поэтому, когда он завершает работу, я получаю то же уведомление по: Привет, я в сети! Мой IP: X.X.X.X
Я думаю, что проблема связана с update-rc.d
Я создал свой сценарий pushover в /etc/init.d/
Я сделал chmod x
Я запустил:
update-rc.d myscript defaults 02 98
Перезагружен, и все же сначала отправляется PO, а VPN подключается вторым.
Поэтому я также попробовал обратное:
update-rc.d myscript defaults 98 02
Перезагружен, и все же сначала отправляется PO, а VPN подключается вторым.
Итак, я попытался добавить sleep 15 в свой скрипт, и все та же проблема.
Как я могу сначала подключиться к OpenVPN, а затем отправить уведомление после этого? Как я могу сделать так, чтобы этот скрипт НЕ запускался при завершении работы системы?
Вот мой скрипт:
#!/bin/bash
sleep 30
WANIP=$(curl ident.me; echo)
echo "$WANIP"
curl -s
-F "token=MYTOKENGOESHERE"
-F "user=MYTOKENGOESHERETOO"
-F "message=is online and connected. ${WANIP} is my IP."
https://api.pushover.net/1/messages.json
Ответ №1:
Приложение update-rc просто создает символическую ссылку внутри папки rc.X, где X будет меняться в зависимости от того, когда вам нужно запустить скрипт. Когда вы используете опцию по умолчанию, ссылка будет создана во всех папках, в результате чего скрипт запускается в каждом из определенных состояний ОС.
Одним из решений было бы создать ссылки вручную только внутри папок, соответствующих событиям, которые вы хотите запустить. Соответствующую папку, в которой должна быть создана ссылка, можно найти здесь:
Другим быстрым решением было бы использовать конфигурацию по умолчанию, а затем удалить символическую ссылку из папки rc.0, которая, согласно статье выше, содержит ссылки на сценарии, которые будут выполняться при остановке ОС.
Комментарии:
1. Хорошо, я разберусь с этим подробнее. Спасибо за ссылку. На данный момент это немного выше моей головы, но я научусь. Спасибо