Больше не может Щелкать правой кнопкой и Выполнение MC.Jar (Minecraft) с Ubuntu 17.10

Дважды щелкните просто открывает его как архив.

Таким образом, что решение состоит в том, чтобы выполнить файл Банки в соответствии с Ubuntu 17.10. Если я щелкаю правой кнопкой, и выбор находят применение, Java 8 не обнаруживается?

&>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)
0
задан 27 October 2017 в 15:17

2 ответа

От вашего имени пользователя я предполагаю, что вы пытаетесь запустить выделенный сервер, и опубликую мой ответ как таковой. Эта система прошла боевые испытания и в настоящее время используется сетью, в которой я являюсь администратором инфраструктуры (наряду с другими необычными функциями), а также бесчисленным количеством других серверов начального уровня и производственных сетей.

Если вы хотите постоянный сервер с автоматическим перезапуском, вы можете посмотреть , создающего systemd службу для вашего сервера. Вы потеряете ваш графический интерфейс и безголовый интерфейс, но вы все равно сможете давать команды на ваш сервер через RCON или аналогичный.

По сути, вам нужно создать нового пользователя (назовем его mcserver), который будет обрабатывать задачи вашего сервера:

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

Далее вам нужно переключиться на этого пользователя:

sudo -u mcserver
cd /opt/mcserver

Пока вы здесь, скопируйте все свои файлы игрового сервера и все, что нужно.

Далее создайте новый скрипт для запуска вашего сервера. не включает в себя какую-либо логику перезапуска или подобное. Это должно быть очень просто:

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

Пометить файл как исполняемый, используя chmod +x mcserver.sh.

Вы можете exit сеанс для mcserver, он вам больше не понадобится.

Создайте новый файл (mcserver.service) в /etc/systemd/system:

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

В этот файл добавьте следующее содержимое:

[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

Как только вы закончите, вам нужно активировать службу:

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

Сервер теперь автоматически запускается при загрузке системы и работает в обычном режиме.

Обратите внимание, что сервер автоматически перезапустится при сбое (ненулевой код выхода), поэтому /stop остановит сервер без возможности перезапуска. Хотя вы также можете остановить сервер с помощью systemctl stop mcserver.service, это будет небезопасно, поскольку сервер не сможет изящно умереть. Однако вы можете использовать rcon, чтобы вышеупомянутая команда отправила изящную остановку. Это, однако, будет оставлено в качестве упражнения для читателя.

Резервные скрипы по-прежнему могут быть запущены, хотя было бы целесообразно использовать пользовательскую запись cron , которая архивирует всю папку и сохраняет ее в безопасном месте.

1
ответ дан 2 November 2019 в 00:57

Я действительно делал сценарий как выполнение моего сервера, но должен быть лучший путь. Кроме того, не очень изящный, просто вводящий Java - банка MC.jar в терминале, оба пути оставляют открытый терминал.

#!/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
0
ответ дан 2 November 2019 в 00:57

Другие вопросы по тегам:

Похожие вопросы: