Как перезапустить процесс каждые 4 часа с помощью crontab?

может кто-нибудь сказать мне, как перезапустить процесс каждые 4 часа с помощью crontab? У меня работает сервер Starbound (это игра, такая как Terarria, которая недавно вышла), и она занимает много ресурсов, поэтому я хотел бы убить процесс, а затем запустить его каждые 6 часов.

Я думаю, что мне нужно будет сделать в crontab:

убить -9 / grep starbound_server cd / главная/steam/starbound/linux64 & & screen-s starbound-d-m ./launch_starbound_server.sh

но я не уверен в этом и не понимаю, что такое время.

надеюсь, кто-то может мне помочь :)

2 ответов


crontab работает следующим образом.

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

поэтому, если вы хотите запускать свой скрипт каждую минуту с 4-часовыми интервалами, вам нужно добавить эту строку в файл crontab.

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

чтобы запустить скрипт один раз в 4 часа (в нулевую минуту), вам нужно добавить эту строку в файл crontab.

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

Edit (ответ на комментарий ):

Да, я считаю, что это правильно, но как я обычно делаю отдельный файл для этого, например, script.sh чтобы все было чисто.

например с содержание:

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

вы можете сохранить его в нужное место и использовать:

chmod +x yourcript.sh

чтобы сделать его исполняемым и добавить его в crontab.


при условии, что вы установили сценарий запуска сервера starbound на /etc/init.d

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

и вы назвали его starbound.sh

затем добавьте строку в свой /etc/crontab такой:

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

(Примечание: это в случае, если сервер starbound запускается root: убедитесь, что сервер сам сбрасывает свои привилегии при запуске, если он не нуждается в них)