Comment redémarrer un processus toutes les 4 heures en utilisant crontab?

Quelqu’un pourrait-il me dire comment redémarrer un processus toutes les 4 heures en utilisant crontab? J’ai un serveur Starbound en cours d’exécution (qui est un jeu comme Terarria qui est sorti récemment) et cela prend beaucoup de ressources, donc je voudrais tuer le processus puis le redémarrer toutes les 6 heures.

Ce que je pense devoir faire dans crontab, c’est:

tuer -9 | grep starbound_server cd / home / steam / starbound / linux64 && écran -S starbound -d -m ./launch_starbound_server.sh

Mais je n’en suis pas sûr et je ne comprends pas non plus

J’espère que quelqu’un peut m’aider 🙂

crontab fonctionne comme ça.

# .---------------- 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 

Donc, si vous voulez exécuter votre script toutes les minutes toutes les 4 heures, vous devrez append cette ligne au fichier crontab.

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

Pour exécuter votre script toutes les 4 heures (à la minute zéro), vous devez append cette ligne au fichier crontab.

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

Modifier (réponse à un commentaire):

Oui, je crois que c’est correct, mais comme moi, je fais généralement un fichier séparé pour cela, par exemple, script.sh pour garder les choses propres.

Par exemple avec le contenu:

 #!/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 

Vous pouvez l’enregistrer à l’emplacement que vous aimez et utiliser:

 chmod +x yourcript.sh 

pour le rendre exécutable, puis l’append à crontab.

A condition que vous ayez installé le script de démarrage du serveur Starbound dans /etc/init.d

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

Et vous l’avez nommé starbound.sh

Ensuite, ajoutez une ligne dans votre /etc/crontab comme ceci:

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

(NOTE: c’est dans le cas où le serveur starbound est démarré par root : vérifiez que le serveur lui-même supprime ses privilèges au démarrage s’il n’en a pas besoin)