
Não faz muito tempo, comprei um Raspberry Pi 4B 8Gb e configurei com sucesso o PLEX Media Server, usando uma placa de expansão SATA. Em um esforço para expandir meu próprio conhecimento, decidi ver se poderia adicionar um servidor Minecraft privado para me divertir. disso, e porque minha sobrinha e meu sobrinho vão pensar que sou um tio legal.
Etapas que concluí
- Troquei o Raspberry PiOS pelo Ubuntu Server 21.04 para que o Java possa aproveitar toda a largura do barramento (64 bits versus 32 bits).
- InstaladoJava 16 JDK da Libériaem preparação para o Minecraft.
- Configure um servidor LEMP (substituído Apache por NGINX) para garantir que a LAN esteja configurada corretamente.
- Encontrei oInstalador PineCraft, para que eu pudesse automatizar as etapas.
- O script do instalador foi concluído com êxito, com as seguintes advertências.
Ressalvas
- O instalador cria arquivos init. Ubuntu usa systemd
- O servidor é executado como
$user
o que requer um$password
, ou o uso desudo
, o que não quero fazer sempre
Preciso de ajuda aqui
Peguei o .service
arquivo deConfigurando um servidor Minecraft usando Systemd, e transformei isso nisso:
[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
- Não consigo descobrir como "passar" o resultado do script para a tela.
- A tela pode estar sempre vazia, pois o status do serviço mostra "Ativo carregado/saída". Presumo que o
server.sh
script foi concluído, mas não permanece carregado/em execução - Se eu executar a linha java com argumentos aiker fora do script, o servidor iniciará sem erros
Veja a Create the Scripts
seção, cerca de 3/4 da descida doinstalar script. Eu só instalei um .service
arquivo de um gerenciador de pacotes/pacotes. Nunca tive que escrever um.
Atualizar
Parcialmente Resolvido: esta configuração usa o seguinte cron job:
crontab -u ubuntu -l
@reboot /usr/bin/screen -dmS Pinecraft /home/ubuntu/minecraft/server > /dev/null 2>&1
server
é o nome do script de shell antes de renomeá-lo para meu serviço de teste. Aparentemente, em uma nova instalação, o cron não é executado por padrão e systemctl | grep cron
não retorna nada. Um simples sudo systemctl enable cron && sudo systemctl start cron
resolveu o problema.
Ainda estou deixando isso aberto, pois gostaria de convertê-lo em um serviço nativo do systemd