2016-07-25 19 views
-2

Ich habe einen Schläger verwendet, um ein Python-Skript auszuführen, und nach 30 Minuten hat es den Prozess beendet und es wieder geöffnet. Wie kann ich es in einem Fedora Linux Sh machen? Ich benutzte dieses:sh zum Ausführen, schließen und erneut alle 30 Minuten ausführen

title StartWorker 2 
:loop   
start "PYworker2" /i python worker.py -st 10 
timeout /t 1800 >null   
taskkill /fi "WINDOWTITLE EQ PYworker2"   
goto loop 
+1

Keine Antwort, aber verwende nicht> null, da dies eine Datei mit dem Namen 'null' erzeugt; Um auf das Nullgerät umzuleiten benutze '> nul' ... – aschipfl

+0

Siehe * man cron *. –

+0

Sie haben uns also ein Windows-Batch-Skript gezeigt, und Sie möchten wissen, wie Sie das Äquivalent mit 'sh' machen können? Sie könnten das etwas klarer machen. –

Antwort

0

Ich denke, was Sie so etwas wie dies aussehen würde wollen:

#! /bin/sh 
while true 
do 
    python worker.py -st 10 & 
    sleep 1800 
    kill $! 
done 

Die Magie ist, dass $! ist die pid des letzten backgrounded Prozess.

Willkommen bei Shell-Programmierung. Ein Wort der Warnung: Wenn Sie etwas darüber erfahren, werden Sie verstehen, was in der Windows-Befehlszeile fehlt. Ignoranz war Glückseligkeit. :-)

0

Haben Sie den Uhrbefehl versucht?

watch -n x python yourscript.Py

Sie könnten dies in einer sh-Datei enthalten oder es einfach laufen vom Terminal

die Zeit einzustellen, gerade diese verwenden

watch -n 1800 Python yourscript.py 

Dies sollte Ihr Python-Skript laufen alle x Sekunden, aber wenn Sie ein Python-Skript neu starten, wenn es nach dem Zufallsprinzip heruntergefahren wurde, ist das ein anderes Problem.

Verwandte Themen