
No hace mucho compré una Raspberry Pi 4B 8Gb y configuré exitosamente PLEX Media Server, usando una placa de expansión SATA. En un esfuerzo por ampliar mis propios conocimientos, decidí ver si podía agregar un servidor privado de Minecraft para divertirme. de ello, y porque mi sobrina y mi sobrino pensarán que soy un tío genial.
Pasos que he completado
- Se cambió Raspberry PiOS por Ubuntu Server 21.04 para que Java pueda aprovechar todo el ancho del bus (64 bits frente a 32 bits).
- InstaladoJava 16 JDK de Libericaen preparación para Minecraft.
- Configure un servidor LEMP (reemplazó Apache con NGINX) para asegurarse de que la LAN esté configurada correctamente.
- Encontre elInstalador de PineCraft, para poder automatizar los pasos.
- El script del instalador se completó correctamente, con las siguientes advertencias.
Advertencias
- El instalador crea archivos de inicio. Ubuntu usa systemd
- El servidor se ejecuta como
$user
lo cual requiere un$password
, o el uso desudo
, lo cual no quiero tener que hacer cada vez.
Necesito ayuda aquí
He tomado el .service
archivo deConfigurar un servidor de Minecraft usando Systemd, y lo convertí en esto:
[Unit]
Description=Minecraft Server Pinecraft SysV init script conversion attempt
Documentation=https://github.com/Cat5TV/pinecraft
Wants=network.target
After=network.target
[Service]
User=minecraft
Group=minecraft
Nice=5
KillMode=none
SuccessExitStatus=0 1
#ProtectHome=true
ProtectSystem=full
PrivateDevices=true
NoNewPrivileges=true
PrivateTmp=true
InaccessiblePaths=/root /sys /srv -/opt /media -/lost+found
ReadWritePaths=/home/minecraft
WorkingDirectory=/home/minecraft
ExecStartPre=/usr/bin/screen -dmS PineCraft
ExecStart=/bin/bash /home/minecraft/server.sh
ExecStop=/bin/bash /home/minecraft/stop.sh
Restart=/bin/bash /home/minecraft/reboot.sh
[Install]
WantedBy=multi-user.target
- No puedo entender cómo "pasar" el resultado del script a la pantalla.
- Es posible que la pantalla siempre esté vacía, porque el estado del servicio muestra "Activo cargado/salir". Supongo que el
server.sh
script se completó, pero no permanece cargado/ejecutándose. - Si ejecuto la línea java con argumentos aiker fuera del script, el servidor se inicia sin errores
Vea la Create the Scripts
sección, aproximadamente 3/4 del camino hacia abajo delinstalar script. Solo he instalado un .service
archivo desde un paquete/administrador de paquetes. Nunca he tenido que escribir uno.
Actualizar
Parcialmente resuelto: Esta configuración utiliza el siguiente trabajo cron:
crontab -u ubuntu -l
@reboot /usr/bin/screen -dmS Pinecraft /home/ubuntu/minecraft/server > /dev/null 2>&1
server
es el nombre del script de shell antes de cambiarle el nombre para mi servicio de prueba. Aparentemente, en una instalación nueva, cron no se ejecuta de forma predeterminada y systemctl | grep cron
no devolvió nada. Un simple sudo systemctl enable cron && sudo systemctl start cron
solucionó el problema.
Todavía dejo esto abierto, ya que me gustaría convertirlo en un servicio systemd nativo.