ca. Zeile 7
ca. Zeile 62
Code: Alles auswählen
if ($_POST['CamControl'] === "Start Camd3") {
exec(''.$PREcmd.''.$Camd3script.' start'.$SUFcmd.'',$output,$return_var);
} elseif ($_POST['CamControl'] === "Stop Camd3") {
exec(''.$PREcmd.''.$Camd3script.' stop'.$SUFcmd.'',$output,$return_var);
} elseif ($_POST['CamControl'] === "Restart Camd3") {
exec(''.$PREcmd.''.$Camd3script.' restart'.$SUFcmd.'',$output,$return_var);
ca. Zeile 122
Code: Alles auswählen
$RestartCamsCamd3="<input type=\"checkbox\" name=\"CR[]\" value=\"Camd3\" checked>Camd3</input>\n";
ca. Zeile 125
ca. Zeile 128
Code: Alles auswählen
$Camd3Buttons ='<input type="submit" value="Start Camd3" name="CamControl"/>';
$Camd3Buttons.='<input type="submit" value="Stop Camd3" name="CamControl"/>';
$Camd3Buttons.='<input type="submit" value="Restart Camd3" name="CamControl"/><br><p>';
ca. Zeile 134
Code: Alles auswählen
if (file_exists("$Camd3script")) { $SHOWbuttons.="$Camd3Buttons\n"; }
ca. Zeile 146
Code: Alles auswählen
$RUNCD=exec("ps auxw | grep -v grep | grep $CDVERSION | awk {'print $2'}");
ca. Zeile 152
Code: Alles auswählen
if ($RUNCD <> "")
{$ProzessStatus.="<td> - <td class=tabgreen>Camd3</td>";}
else
{$ProzessStatus.="<td> - <td class=tabred>Camd3</td>";}
Damit das auch funktioniert muss man noch dem WebServer-Benutzer
www-data erlauben den jeweiligen Camd3 Befehl über sudo auszuführen, damit der Befehl dann auch als root ausgeführt wird
Um das zu erreichen müssen wir die entsprechende Zeile über den Befehl
visudo anpassen - Dieser Befehl öffnet standardmässig eine Datei (/etc/sudoers), allerdings über
vi - wenn man stattdessen
nano nutzen möchte, führ man einmal vorher folgenden Befehl aus:
EDITOR=nano
Aber unbedingt wirklich den Befehl
visudo benutzen da der Befehl noch mehr macht als nur die Datei mit einem Editor zu öffnen!
Also wie gesagt, den Befehl
visudo ausführen und dann dort nach einer entsprechenden Zeile suchen die ungefähr so aussehen sollte:
Code: Alles auswählen
www-data ALL=NOPASSWD:/bin/c,/bin/o,/bin/n,/bin/i,/etc/init.d/cron,/usr/bin/last,/tmp/reboot
in diese Zeile fügt ihr dann den /pfad/zum/camd3/script ein, also passend für obige Zeilen laut control.php:
...fals ihr oben einen Symlink angelegt habt könnt ihr aber natürlich auch
/bin/camd3 nehmen...
Die komplette Zeile sollte dann ungefähr so aussehen:
Code: Alles auswählen
www-data ALL=NOPASSWD:/bin/c,/bin/o,/bin/n,/bin/i,/etc/init.d/cron,/usr/bin/last,/tmp/reboot,/var/emu/script/camd3
Zu guter letzt muss jetzt noch das Script für den Befehl
i cr angepasst werden (Cam Restart)
->
/var/emu/script/ipc-camrestart.sh
Code: Alles auswählen
#!/bin/bash
#
CCcam=0
OScam=0
NewCS=0
Camd3=0
Cams=""
srcv="0.1"
for emu in "$@"; do
case $emu in
[cC][cC][cC][aA][mM])
CCcam=1 ; Cams="$Cams CCcam"
;;
[oO][sS][cC][aA][mM])
OScam=1 ; Cams="$Cams OScam"
;;
[nN][eE][wW][cC][sS])
NewCS=1 ; Cams="$Cams NewCS"
;;
[cC][aA][mM][dD]3)
Camd3=1 ; Cams="$Cams Camd3"
;;
[aA][lL][lL])
CCcam=1 ; OScam=1 ; NewCS=1 ; Camd3=1 ; Cams="CCcam OScam NewCS Camd3"
;;
esac
done
Cams=$(echo $Cams | sort)
cd /var/emu/script
if [ "$CCcam" = "1" ]; then
./cccam stop
echo ""; sleep 3
fi
if [ "$OScam" = "1" ]; then
./oscam restart
echo ""; sleep 2
fi
if [ "$NewCS" = "1" ]; then
./newcs restart
echo ""; sleep 2
fi
if [ "$Camd3" = "1" ]; then
./camd3 restart
echo ""; sleep 2
fi
if [ "$CCcam" = "1" ]; then
./cccam start
echo ""; sleep 1
fi
if [ ! -z "$Cams" ]; then
echo "Restart der Cams '$Cams' wurde durchgefuehrt"
echo ""
else
echo "Usage: $0 [CCcam OScam NewCS Camd3|all]"
echo "E.g.: $0 CCcam OScam NewCS"
echo "E.g.: $0 OScam Camd3"
echo "E.g.: $0 all"
fi
exit 0