Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Witam,
sytuacja wygląda w ten sposób:
- są 2 komputery, klient i serwer;
- na kliencie leci sobie kompilacja, w której pomaga serwer [distcc];
- czas kompilacji jest nieznany, uruchamiamy proces i idziemy spać;
- o ile na kliencie wydajemy polecenie
polecenie && shutdown h -0
- to w jaki sposób po skończonej kompilacji wyłączyć serwer?
Myślałem o jakimś skrypcie uruchamianym na serwerze, który by pingował klienta co jakiś czas, a w przypadku braku odpowiedzi (czyli gdy klient skończy kompilację i się wyłączy/zahibernuje) również wyłączył/zahibernował serwer.
Proszę o uwagi, choć nie obrażę się na gotowca :) bo jestem humanistą.
Edyta:
guglownica wypluła:
#!/bin/bash ping -c 1 IP || poweroff
do tego cron; proszę o uwagi.
Jednak użycie crona mi się nie kalkuluje - kompilacja skrośna nie jest procesem regularnie cyklicznym, uruchamiam ją losowo. Cron będzie mi uruchamiał skrypt regularnie i wyłączy mi serwer zawsze, gdy nie będzie klienta w sieci, czyli praktycznie w 99% przypadków.
Zatem pożądane byłoby pominięcie crona i ręczne uruchamianie skryptu tylko wtedy, kiedy kompiluję skrośnie. Potrzebna jest zatem pętla, która będzie sprawdzać, powiedzmy co 10 min. czy klient odpowiada na pingi.
Czyli uruchamiam demona distcc na obu maszynach, na kliencie piszę
coś tam && shutdown -h 0
a na serwerze uruchamiam skrypt, który wyłączy go, jak tylko klient nie odpowie na ping.
Pomożecie?
Ostatnio edytowany przez ippo76 (2010-06-10 06:07:04)
Offline
polecenie && ssh root@serwer 'shutdown -h now' && shutdown h -0
logowanie po kluczu
Offline
A też sprytnie :) Dzięki
A tak dla nauki - jakby wyglądał skrypt o jaki mi chodzi (czyli bez użycia ssh, uruchamiany na serwerze)?
Ostatnio edytowany przez ippo76 (2010-06-09 19:26:01)
Offline
while true; do ping -c 1 IP || poweroff; sleep 300; done
Offline
Wielkie dzięki!
Edyta:
Nie zadziałało. Zmodyfikowałem tylko nieco ciąg komend, bo w konfigu ssh mam zablokowane logowanie z roota:
sudo polecenie && ssh serwer 'sudo pm-hibernate' && sudo pm-hibernate
Ostatnio edytowany przez ippo76 (2010-06-10 08:06:08)
Offline