我一直在研究如何从树莓派中运行一个Minecraft服务器,所以我终于设置好了!
所以我想我自己,我可以进一步...所以我一直在努力制作一个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 :(得分:2)
要回答问题底部的陈述问题,您可以通过将sudo
添加到命令本身来使Python脚本运行终端命令。
os.system("sudo java -Xms1024M -Xms1024M -jar /home/pi/Server/server.jar nogui")