überwachen ob file existiert und dann daemon stoppen/starten

28/11/2013 - 00:43 von Thomas Rechberger | Report spam
Mit untem aufgeführtem Script habe ich versucht rtorrent automatisch zu
stoppen bei einem Anruf auf Asterisk und nach auflegen wieder zu starten.
Die benötigten Rechte sind alle in visudo eingetragen und ich kann das
Script mit user Asterisk in der Bash wunderbar ausführen, nur unter
asterisk funktioniert leider nur das stoppen. Beim starten schlàgt der
erste screen Befehl fehl und beim zweiten erscheint dann no screen
sessions found. Ganz banal mit normalen init.d Script geht natürlich
auch nicht.

Falls keiner noch eine Idee hat, wie man das ganze trotzdem hinbiegen
kann, dachte ich mir ich erzeuge mit Asterisk ein File, überwache dann
in Linux ob dieses File existiert und steuere dann den Daemon einfach
dort. Nur wie könnte man das machen ohne das das es den Rechner zu sehr
belastet und auch innerhalb weniger Sekunden startet?
Vielleicht mit cron und if exist, aber vielleicht gibts da was eleganteres.



!/bin/sh
var1=$1

if [ "${var1}" == "start" ]; then
cd /home/rt
sudo -u rt screen -dm -S rtorrent
sleep 2
sudo -u rt screen -S rtorrent -X screen rtorrent

elif [ "${var1}" == "stop" ]; then

pid=$(cat /home/rt/session/rtorrent.lock | sed "s/[^0-9]//g")
if ps -A | grep ${pid}.*rtorrent > /dev/null ; then
sudo -u rt kill -s INT $pid
fi
sudo -u rt screen -S rtorrent -p 0 -X quit
else
echo "no arguments specified!"
fi
 

Lesen sie die antworten

#1 Marcel Müller
28/11/2013 - 01:20 | Warnen spam
On 28.11.13 00.43, Thomas Rechberger wrote:
Mit untem aufgeführtem Script habe ich versucht rtorrent automatisch zu
stoppen bei einem Anruf auf Asterisk und nach auflegen wieder zu starten.



Mir scheint du Suchst QoS-Routing und nicht ein Skript.

Die benötigten Rechte sind alle in visudo eingetragen und ich kann das
Script mit user Asterisk in der Bash wunderbar ausführen, nur unter
asterisk funktioniert leider nur das stoppen. Beim starten schlàgt der
erste screen Befehl fehl und beim zweiten erscheint dann no screen
sessions found.



Bestimmt irgendein Berechtigungsproblem.
Vielleicht sind auch komische Umgebungsvariablen gesetzt.

Falls keiner noch eine Idee hat, wie man das ganze trotzdem hinbiegen
kann,



Plan A ist QoS. Alles andere schießt Dir über kurz oder lange doch
wieder die VOIP Gespràche ab. Neben Torrents gibt es da ja noch
System-Updates oder Browser-Sessions.

Wenn das nicht hilft, weil deine Hardware es ums zerplatzen nicht kann,
könntest Du die Bandbreiten der Torrents grundsàtzlich so einschrànken,
dass noch Platz zwei VOIP-Streams im Up- und Down-Stream bleibt. So viel
brauchen die Gespràche ja nicht.

dachte ich mir ich erzeuge mit Asterisk ein File, überwache dann
in Linux ob dieses File existiert und steuere dann den Daemon einfach
dort. Nur wie könnte man das machen ohne das das es den Rechner zu sehr
belastet und auch innerhalb weniger Sekunden startet?
Vielleicht mit cron und if exist, aber vielleicht gibts da was eleganteres.



Bis cron in die Puschen kommt, ist dein Gespràch schon weg. Du müsstest
schon ein Programm dauerhaft laufen lassen, was auf die Events aus dem
Filesystem reagiert. Einmal in der Minute ein Programm zu starten, ist
nicht eben Best Practice.


Marcel

Ähnliche fragen