Não pode mais clicar com o botão direito e executar o MC.Jar (Minecraft) com o Ubuntu 17.10

0

O clique duplo apenas abre como um arquivo.

Então, qual é a solução para executar um arquivo Jar no Ubuntu 17.10. Se eu clicar com o botão direito do mouse e selecionar localizar aplicativo, o Java 8 não aparecerá?

&>java -version
openjdk version "1.8.0_144"
OpenJDK Runtime Environment (build 1.8.0_144-8u144-b01-2-b01)
OpenJDK 64-Bit Server VM (build 25.144-b01, mixed mode)
    
por EODCraft Staff 28.10.2017 / 00:01

2 respostas

1

Do seu nome de usuário, vou assumir que você está tentando executar um servidor dedicado e postarei minha resposta como tal. Este sistema foi testado em batalha e atualmente está sendo usado por uma rede na qual eu sou o administrador da infraestrutura (juntamente com outros recursos sofisticados), bem como inúmeros outros servidores de entrada e redes de produção.

Se você deseja um servidor de reinicialização automática persistente, pode procurar em a criação de um systemd service para o seu servidor. Você perderá a GUI e a interface sem cabeça, mas ainda poderá enviar comandos para o seu servidor através de RCON ou similar.

Efetivamente, você precisaria criar um novo usuário (vamos chamá-lo de mcserver ) que lidará com as tarefas do seu servidor:

sudo adduser --system --disabled-login --group --home /opt/mcserver 

Em seguida, você desejará mudar para este usuário:

sudo -u mcserver
cd /opt/mcserver

Enquanto estiver aqui, copie todos os arquivos do servidor do jogo e o que for.

Em seguida, crie um novo script para iniciar seu servidor. Não não inclui qualquer lógica de relançamento ou similar. Deve ser muito simples:

#!/bin/bash
/usr/bin/java -Xms1024M -Xmx4G -jar -XX:+UseConcMarkSweepGC -jar minecraft.jar --nojline --noconsole

Marque o arquivo como executável usando chmod +x mcserver.sh .

Você pode exit da sessão para mcserver , você não precisará mais dela.

Crie um novo arquivo ( mcserver.service ) em /etc/systemd/system :

sudo nano /etc/systemd/system/mcserver.sh

Neste arquivo, adicione o seguinte conteúdo:

[Unit]
Description=Vanilla Minecraft Server

Wants=network.target
After=network.target

[Service]
User=mcserver
Group=mcserver

ProtectHome=true
ProtectSystem=full
PrivateDevices=true
NoNewPrivileges=true
PrivateTmp=true
InaccessibleDirectories=/root /sys /srv -/opt /media -/lost+found
ReadWriteDirectories=/var/minecraft/server
WorkingDirectory=/var/minecraft/server    

Restart=on-failure
RestartSecs=5

ExecStart=/opt/mcserver/mcserver.sh

[Install]
WantedBy=multi-user.target

Quando terminar, você precisará ativar o serviço:

sudo systemctl daemon-reload
sudo systemctl enable mcserver.service
sudo systemctl start mcserver.service

O servidor será iniciado automaticamente na inicialização do sistema e executado normalmente.

Observe que o servidor será reiniciado automaticamente em uma falha (código de saída diferente de zero), portanto /stop parará o servidor sem a chance de um respawn. Embora você também possa parar o servidor com systemctl stop mcserver.service , não será seguro, pois o servidor não morrerá com graça. Você pode, no entanto, usar rcon para que o comando mencionado envie uma parada normal. Isso, no entanto, será deixado como um exercício para o leitor.

Os scripts de backup ainda podem ser executados, embora seja aconselhável usar uma entrada de registro de usuário que zere todo o pasta e armazena em algum lugar seguro.

    
por Kaz Wolfe 10.11.2017 / 00:51
0

Eu fiz um script como executar meu servidor, mas deve haver uma maneira melhor. Além disso, não muito elegante, basta digitar java -jar MC.jar no terminal, ambas as formas deixam um terminal aberto.

#!/bin/sh
while true
do
java -Xms1024M -Xmx4G -jar -XX:+UseConcMarkSweepGC -jar MC.jar
echo "If you want to completely stop the server process now, press 
Ctrl+C before the time is up!"
echo "Rebooting in:"
for i in 5 4 3 2 1
do
echo "$i..."
sleep 1
done
echo "Rebooting now!"
done
    
por EODCraft Staff 28.10.2017 / 00:16