2013-09-30 111 views
0

我試圖安排一次遊戲服務器重新啓動和vps重新啓動。我做了3項的cron(屏幕終止,VPS重啓,遊戲服務器開始)的root用戶USER1crontab在運行腳本之前需要用戶登錄一次

29 6 * * * sleep 48; screen -S cs1 -X quit 
31 6 * * * cd /home/user1/steamcmd/hlds; ./cs1.sh 

cs1.sh

screen -dmS cs1 ./hlds_run -game cstrike -pingboost 2 +map de-dust +maxplayers 31 +port 27018 

30 6 * * * /sbin/reboot 

crontab條目

crontab條目

問題是user1的第二個crontab項不工作,除非如果我在重新啓動後和上午6:31之前登錄(通過膩子)。有沒有人可以在這裏解釋如何解決這個問題?

+0

你可能無法運行屏幕創建一個新的屏幕會話,而不需要連接到你的shell。運行你的cron作業的shell不會有任何tty連接。 –

+0

你是什麼意思,我該如何解決? – user2832854

+0

登錄時,終端是所有程序都可以打印結果的地方。您的終端連接到所有這些程序。當cron作業開始時,cron作業可以打印結果的終端不存在,因此只能運行程序作爲不需要終端的cron作業。 GNU屏幕顯然需要一個終端,所以要修復它,你必須重寫GNU屏幕的代碼。所以,很可能,這是你無法輕鬆解決的問題。 –

回答

1

我不確定這是否會對你有所幫助,但我運行一個在0230每天重新啓動的craftbukkit服務器。我發現我無法從crontab調用啓動腳本,但我可以運行屏幕命令。

下面是服務器重新啓動我的crontab條目:

@reboot CD /家庭/ mcadmin/craftbukkit & &屏幕-dms的Minecraft的Java -Xincgc -Xmx2048M -jar craftbukkit.jar