2015-03-02 84 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