2015-03-02 76 views
0

我一直在研究如何從覆盆子pi運行一個minecraft服務器,所以我終於搞定了!Raspberry Pi使用python腳本來啓動我的世界服務器jar文件

所以我想我自己,我可以進一步...因此,我一直在努力製作一個python腳本,只要按下按鈕IRL就可以運行服務器。它工作得很好,直到它說:

An exception occurred processing Appender File org.apache.logging.log4j.core.appender.AppenderLoggingException 
Error writing to RandomAccessFile logs/latest.log 

我的代碼如下:

import RPi.GPIO as GPIO 
import os 
import time 

GPIO.setmode(GPIO.BOARD) 

GPIO.setup(11, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) 
GPIO.setup(11, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) 

try: 
while True: 
    #Test to see if the button has been pressed 
    if (GPIO.input(11) == 1): 
     print ("Downloading Server to clear corruption...") 
     #download specified version 
     os.system("wget https://s3.amazonaws.com/Minecraft.Download/versions/1.8.1/minecraft_server.1.8.1.jar") 
     print ("Moving file...") 
     os.system("mv /home/pi/minecraft_server.1.8.1.jar /home/pi/Server/server.jar") 
     print ("Finished") 
     print ("Starting Server") 
     #start server 
     os.system("java -Xms1024M -Xms1024M -jar /home/pi/Server/server.jar nogui") 
     print ("Server Stopped!") 
     time.sleep(2) 

except KeyboardInterrupt: 
    GPIO.cleanup() 

當我運行服務器

cd Server 
java -Xms1024M -Xms1024M -jar server.jar nogui 

它完美!

我認爲問題在於,當我運行python腳本時,它沒有足夠的權限,因此無法編輯文件。

我啓動腳本

sudo python controller.py 

我的問題是;無論如何,使用python腳本以超級用戶的權力運行終端命令?

+0

使用'sudo'訪問修飾符。 – 2015-03-02 21:29:42

+0

我應該在哪裏使用它? – Minegeek360 2015-03-03 07:08:29

回答

2

要回答在問題底部提到的問題,可以通過將sudo添加到命令本身來使Python腳本運行終端命令。

os.system("sudo java -Xms1024M -Xms1024M -jar /home/pi/Server/server.jar nogui") 
+0

我不敢相信我從來沒有嘗試* facepalm * – Minegeek360 2015-03-03 08:03:12

+0

@詹姆斯伯內爾,如果它解決了你的問題,請接受答案。 – merlin2011 2015-03-03 08:32:43