2013-12-08 12 views
8

Kann mir jemand sagen, wie man einen Prozess alle 4 Stunden mit Crontab neu startet? Ich habe einen Starbound-Server (ein Spiel wie Terarria, das kürzlich herauskam) und es benötigt eine Menge Ressourcen, also würde ich den Prozess gerne beenden und ihn alle 6 Stunden wieder starten.Wie startet man einen Prozess alle 4 Stunden mit Crontab?

Was ich denke, ich müsste in crontab zu tun ist:

kill -9 | grep starbound_server cd/home/Dampf/Bound/Linux64 & & Bildschirm -S Bound -d -m ./launch_starbound_server.sh

Aber ich bin mir nicht sicher über dieses und nicht verstehen, die Zeit entweder thingy.

Ich hoffe, jemand kann mir helfen :)

+1

Mögliche doppelte: http://stackoverflow.com/ Fragen/11562804/running-cron-job-on-linux-alle-6-Stunden – aste123

Antwort

22

crontab wie das funktioniert.

# .---------------- minute (0 - 59) 
# | .------------- hour (0 - 23) 
# | | .---------- day of month (1 - 31) 
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ... 
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat 
# | | | | | 
# * * * * * user-name command to be executed 

Also, wenn Sie Ihr Skript Abständen jede Minute auf 4 Stunden laufen lassen wollen, müssten Sie diese Zeile hinzufügen Datei crontab.

* */4 * * * user-name command to be executed 

Um das Skript einmal alle 4 Stunden (auf der Null Minute) laufen, dann würden Sie diese Zeile in crontab Datei hinzufügen.

0 */4 * * * user-name command to be executed 

Edit (Antwort) Kommentar:

Ja, ich glaube, das ist richtig, aber als ich mich in der Regel separate Datei tun dies für zum Beispiel script.sh Dinge sauber zu halten.

Zum Beispiel mit dem Inhalt:

#!/bin/sh 

# Kill 1 
screen -X -S | grep starbound kill 

# Kill 2 
kill -9 | grep starbound_server 

# Change directory 
cd /home/steam/starbound/linux64 

# Start the server again 
screen -S starbound -d -m ./launch_starbound_server.sh 

Sie es an den Ort speichern, die Sie mögen und Verwendung:

chmod +x yourcript.sh 

, um es ausführbar zu machen, und es dann crontab hinzuzufügen.

+0

Wow danke, ich kann wirklich nicht glauben, wie gut du das erklärt hast! Ich wünschte, ich könnte dich aufrüsten. Wenn es Ihnen nichts ausmacht, eine andere Frage zu stellen, wäre das korrekt: * */4 * * * my_user_name Bildschirm -X -S | grep starbound kill && kill -9 | grep starbound_server && cd/home/dampf/starbound/linux64 & & screen -S starbounded -d -m ./launch_starbound_server.sh – user3079979

+0

Hey geil, du bist mein Retter! Aber Bildschirm -X -S | grep starbound kill scheint nicht zu funktionieren, ich habe gegoogelt aber kann nichts finden, wie man einen Bildschirm sucht/findet und ihn dann tötet. Ich möchte es suchen, weil es manchmal nicht getötet werden will und ich pid.screen setzen muss. – user3079979

+0

Haben Sie versucht "killall -9 starbounded"? – m4gix1

1

Vorausgesetzt, dass Sie die Bound-Server Start-Skript installiert haben in /etc/init.d

http://www.bubblews.com/news/1749423-starbound-server-start-script

Und Sie nannten es starbound.sh

Dann eine Zeile in Ihrer /etc/crontab wie folgt hinzu:

0 /4 * * * root /etc/init.d/starbound.sh restart

(Anmerkung: dies im Fall des Bound-Server von root gestartet wird: überprüfen Sie, dass der Server selbst seinen priviledges fällt beim Start, wenn er sie nicht braucht)

+2

Es sollte '0/4 * * * root /etc/init.d/starbound.sh restart' sein, um einmal pro Stunde ausgeführt zu werden. Nicht jede Minute jeder 4. Stunde. Ich denke, es ist klar, was OP will. – naktinis