Как перезапустить процесс каждые 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
: убедитесь, что сервер сам сбрасывает свои привилегии при запуске, если он не нуждается в них)