Zdravím,
postavil jsem si domácí server, který má běžet jen když má komu sloužit. Zapíná se magickým paketem a vypnout by se měl v okamžiku, kdy není připojen žádný klient, a to je právě ten problém.
Mám updatovaný Ubuntu server 8.04, a protože teprve začínám, používám sudo.
Napsal jsem si jednoduchý skript v PHP, který opingá dané IP adresy a když jsou všechny mrtvé, vypne PC.
<?php
$HostsAddr = array(
"192.168.68.1",
"192.168.68.2",
"192.168.68.3"
);
foreach ($HostsAddr as $Addr) {
# echo "$Addr\n";
exec("ping -c2 $Addr", $output, $retval);
if ($retval == 0){
# echo "někdo běží";
return;
}
}
#echo "všichni jsou vypnuti";
exec("halt", $output, $retval)
?>
V terminálu skript funguje dle očekávání.
Další vize byla přidat ho do Cronu, kde by se spouštěl každých 5 minut. Protože jsem líná lama použil jsem Webmin 1.430 a úlohu spouštěnou jako root jsem bez problémů přidal.
Když z Webadminu vyvolám ručně spuštění úlohy, proběhne opět vše bez problémů dle očekávání.
A teď problém:
Cron úlohu spouští (alespoň podle logu to tak vypadá) v logu od Cronu ani v žádném jiném není chyba a přesto úloha neproběhně korektně, protože nedojde k vypnutí PC
Tuším, že pes bude zakopán někde v právech root versus sudo, ale nevím jak dál, protože s linuxem teprve začínám...
Jak zjistím, že root má právo k vypnutí počítače příkazem halt, když používám sudo?
A neměl by být v nějakém logu chybový zápis, pokud root to právo nemá?
Poradí prosím někdo?
Děkuji
Pavel