如何使用crontab每4小时重启一个进程?

时间:2013-12-08 14:19:57

标签: ubuntu crontab restart

有人可以告诉我如何使用crontab每4小时重启一个进程吗?我有一台Starbound服务器正在运行(这是最近出现的像Terarria这样的游戏)并且它占用了大量资源,所以我想杀死这个过程,然后每6小时重启一次。

我认为我需要在crontab中做的是:

kill -9 | grep starbound_server cd / home / steam / starbound / linux64&& screen -S starbound -d -m ./launch_starbound_server.sh

但我不确定这一点,也不理解时间。

我希望有人可以帮助我:)。

2 个答案:

答案 0 :(得分:26)

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

编辑(评论回答):

是的,我相信这是正确的,但作为我自己,我通常会为此单独执行文件,例如,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。

答案 1 :(得分:1)

前提是您已在/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

(注意:这是因为星号服务器是由root启动的:检查服务器本身是否在启动时丢失了它的特权(如果它不需要它们)