Автозапуск сервера minecraft linux

Настройка сервера Minecraft на Linux

Что ж папки сервера у нас в порядке, приступим к установке Java.

3. Установка Java

Для установки Java на Debian’е необходимо ввести в терминале слудующую команду устанавливающую из репозитория сам продукт:

apt-get install openjdk-6-jre

После ввода вам возможно должны предложить согласиться с установкой, введите y для соглашения.

После выполнения вышеуказанных действий рекомендуется перезагрузить машину, после чего выполните dpkgconfigurea для полной конфигурации установленных пакетов. На этом установка Java завершена. Ну а больше для работоспособности сервера Minecraft ничего и не нужно.

4. Тестовый запуск

Откройте терминал SSH. с помощью команды cd перейдите в папку с сервером. Затем введите следующее: java -Xms1G -Xmx1G -jar craftbukkit—.jar nogui , где

-Xms1G -Xmx1G Обьём памяти на который будет рассчитывать Виртуальная Java машина. 1G — 1 Гигабайт 2G — 2 Гигабайта

craftbukkit—.jar — ваш исполняемый файл, например — craftbukkit-1.2.5-R4.1.jar.

После запуска у вас должны поочерёдно выводиться в консоли строки запуска сервера — загрузка плагинов, создание и загрузка мира и тд.

На этом всё, если вы всё сделали правильно, ваш сервер должен работать и быть доступным по умолчанию по адресу :25565. Например:

78.24.219.108:25565. Однако это пока тестовый запуск и проверка работоспособности всей настройки, скорее всего если вы закроете консоль сервер так же может быть закрыт. При желании вы можете изменить порт и прочие параметры сервера в файле server.properties.

//Будьте внимательны при размещении сервера. Если вы случайно разместите его за предалами папки пользователя от которого идёт вызов запуска — сервер будет работать очень странно и косо выкидывая сообщение «User not premium» , «Подключение прервано» или «Конец потока»

5. Установка скрипта автоматической загрузки.

Теперь для для ещё более стабильной и удобной работы мы установим скрипт автозагрузки/автоперезагрузки для Minecraft сервера.

Создайте в папке /etc/init.d/ файл без расширения с названием minecraftи наполните его содержимым:

#!/bin/bash # /etc/init.d/minecraft # version 0.3.7 2012-03-06 (YYYY-MM-DD) ### BEGIN INIT INFO # Provides: minecraft # Required-Start: $local_fs $remote_fs # Required-Stop: $local_fs $remote_fs # Should-Start: $network # Should-Stop: $network # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Minecraft server # Description: Starts the minecraft server ### END INIT INFO #Settings SERVICE='minecraft_server.jar' OPTIONS='nogui' USERNAME='minecraft' WORLD='world' MCPATH='/home/minecraft/minecraft' BACKUPPATH='/media/remote.share/minecraft.backup' CPU_COUNT=1 INVOCATION="java -Xmx1024M -Xms1024M -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalPacing -XX:ParallelGCThreads=$CPU_COUNT -XX:+AggressiveOpts -jar $SERVICE $OPTIONS" ME=`whoami` as_user() < if [ $ME == $USERNAME ] ; then bash -c "$1" else su - $USERNAME -c "$1" fi >mc_start() < if pgrep -u $USERNAME -f $SERVICE >/dev/null then echo "$SERVICE is already running!" else echo "Starting $SERVICE. " cd $MCPATH as_user "cd $MCPATH && screen -dmS minecraft $INVOCATION" sleep 7 if pgrep -u $USERNAME -f $SERVICE > /dev/null then echo "$SERVICE is now running." else echo "Error! Could not start $SERVICE!" fi fi > mc_saveoff() < if pgrep -u $USERNAME -f $SERVICE >/dev/null then echo "$SERVICE is running. suspending saves" as_user "screen -p 0 -S minecraft -X eval 'stuff \"say SERVER BACKUP STARTING. Server going readonly. \"\015'" as_user "screen -p 0 -S minecraft -X eval 'stuff \"save-off\"\015'" as_user "screen -p 0 -S minecraft -X eval 'stuff \"save-all\"\015'" sync sleep 10 else echo "$SERVICE is not running. Not suspending saves." fi > mc_saveon() < if pgrep -u $USERNAME -f $SERVICE >/dev/null then echo "$SERVICE is running. re-enabling saves" as_user "screen -p 0 -S minecraft -X eval 'stuff \"save-on\"\015'" as_user "screen -p 0 -S minecraft -X eval 'stuff \"say SERVER BACKUP ENDED. Server going read-write. \"\015'" else echo "$SERVICE is not running. Not resuming saves." fi > mc_stop() < if pgrep -u $USERNAME -f $SERVICE >/dev/null then echo "Stopping $SERVICE" as_user "screen -p 0 -S minecraft -X eval 'stuff \"say SERVER SHUTTING DOWN IN 10 SECONDS. Saving map. \"\015'" as_user "screen -p 0 -S minecraft -X eval 'stuff \"save-all\"\015'" sleep 10 as_user "screen -p 0 -S minecraft -X eval 'stuff \"stop\"\015'" sleep 7 else echo "$SERVICE was not running." fi if pgrep -u $USERNAME -f $SERVICE > /dev/null then echo "Error! $SERVICE could not be stopped." else echo "$SERVICE is stopped." fi > mc_update() < if pgrep -u $USERNAME -f $SERVICE >/dev/null then echo "$SERVICE is running! Will not start update." else MC_SERVER_URL=http://s3.amazonaws.com/MinecraftDownload/launcher/minecraft_server.jar?v=`date | sed "s/[^a-zA-Z0-9]/_/g"` as_user "cd $MCPATH && wget -q -O $MCPATH/minecraft_server.jar.update $MC_SERVER_URL" if [ -f $MCPATH/minecraft_server.jar.update ] then if `diff $MCPATH/$SERVICE $MCPATH/minecraft_server.jar.update >/dev/null` then echo "You are already running the latest version of $SERVICE." else as_user "mv $MCPATH/minecraft_server.jar.update $MCPATH/$SERVICE" echo "Minecraft successfully updated." fi else echo "Minecraft update could not be downloaded." fi fi > mc_backup() < mc_saveoff NOW=`date "+%Y-%m-%d_%Hh%M"` BACKUP_FILE="$BACKUPPATH/$_$.tar" echo "Backing up minecraft world. " #as_user "cd $MCPATH && cp -r $WORLD $BACKUPPATH/$_`date "+%Y.%m.%d_%H.%M"`" as_user "tar -C \"$MCPATH\" -cf \"$BACKUP_FILE\" $WORLD" echo "Backing up $SERVICE" as_user "tar -C \"$MCPATH\" -rf \"$BACKUP_FILE\" $SERVICE" #as_user "cp \"$MCPATH/$SERVICE\" \"$BACKUPPATH/minecraft_server_$.jar\"" mc_saveon echo "Compressing backup. " as_user "gzip -f \"$BACKUP_FILE\"" echo "Done." > mc_command() < command="$1"; if pgrep -u $USERNAME -f $SERVICE >/dev/null then pre_log_len=`wc -l "$MCPATH/server.log" | awk ''` echo "$SERVICE is running. executing command" as_user "screen -p 0 -S minecraft -X eval 'stuff \"$command\"\015'" sleep .1 # assumes that the command will run and print to the log file in less than .1 seconds # print output tail -n $[`wc -l "$MCPATH/server.log" | awk ''`-$pre_log_len] "$MCPATH/server.log" fi > #Start-Stop here case "$1" in start) mc_start ;; stop) mc_stop ;; restart) mc_stop mc_start ;; update) mc_stop mc_backup mc_update mc_start ;; backup) mc_backup ;; status) if pgrep -u $USERNAME -f $SERVICE > /dev/null then echo "$SERVICE is running." else echo "$SERVICE is not running." fi ;; command) if [ $# -gt 1 ]; then shift mc_command "$*" else echo "Must specify server command (try 'help'?)" fi ;; *) echo "Usage: $0 " exit 1 ;; esac exit 0

Где измените следующие строки относительно вашей конфигурации:

SERVICE=’craftbukkit—.jar’ //ваш исполняемый файл

USERNAME=’minecraft‘ //ваше имя пользователя в системе Linux

MCPATH=’/home/minecraft/minecraft‘ //ваша папка с сервером

Внимание старайтесь указывать полные пути ОТ КОРНЯ СИСТЕМЫ!

Затем, назначьте этому файлу права на исполнение

chmod a+x /etc/init.d/minecraft

и добавьте его в список автозагрузки командой:

update-rc.d minecraft defaults


Всё, на этом установка скрипта завершена, для его проверки перезапустите ваш хостинг — сервер должен включиться автоматически. или введите в терминале для запуска сервера : sh /etc/init.d/minecraft start. Так же для вас доступны команды управления сервера через терминал:

sh /etc/init.d/minecraft start — Запустить сервер

sh /etc/init.d/minecraft stop — Остановить сервер

sh /etc/init.d/minecraft restart — Перезагрузка сервера

sh /etc/init.d/minecraft status — Статус сервера

sh /etc/init.d/minecraft command — Выполнить команду на сервере от игровой консоли. Например sh /etc/init.d/minecraft command say WOW

6. Добавление сервера Minecraft в планировщик Cron для автоперезагрузки

Для пользователей имеющих ISP Manager это сущая пара пустяков. Перейдя в Cron из панели управления, нажмите вверху кнопку создать. В появившемся окошке введите полный путь от корня системы до файла minecraft с командой перезагрузки. Скорее всего у вас это будет выглядеть так /etc/init.d/minecraft restart и поставьте период каждые 3 часа.

Всё на этом небольшой гайд по установке и настройке сервера майнкрафт на Linux завершён, по поводу ошибок и неудачах пишите в комментариях.

You have no rights to post comments

Источник

Linux: How to start a Minecraft server at boot via Systemd

index-hero-og.088fb7996b03

I decided to local host a small Minecraft server on a RHEL 7 vm. There are tons of guides on how to install Minecraft on Linux, but I did not find much of anything that details how to get the software to start at boot-time via systemd.

Below are the steps that I took. These instructions should work on RHEL 6/7, Centos 6/7, or any other Linux that utilizes systemd for starting services.

Change directory to the systemd directory.

Create a systemd service file using your favorite text editor. Mine is called minecraft.service.

[root@minecraft system]# cat minecraft.service
[Unit]
Description=Start Minecraft
After=network.target

[Service]
Type=simple
ExecStart=/root/start_minecraft_server.bash
TimeoutStartSec=0

[Install]
WantedBy=default.target

Make the systemd script executable.

# chmod +x /etc/systemd/system/minecraft.service

Next, create a startup script. Again use your favorite text editor. In the example above, systemd is configured to run the script “/root/start_minecraft_server.bash”. We now need to create that script. Its contents are below.

#!/bin/bash

#Standard Minecraft
cd /home/mcserver/minecraft
exec java -Xmx2048M -Xms2048M -jar minecraft_server.1.12.2.jar nogui

Make the script above executable.

#chmod +x /root/start_minecraft_server.bash

Enable and start your service

#systemctl enable minecraft.service

#systemctl start minecraft.service

Like this:

4 thoughts on “ Linux: How to start a Minecraft server at boot via Systemd ”

This article was super helpful! Thank you for posting this. I do, however, have a few questions: 1.) I setup my bash file to enable the gui but it doesn’t show up. Is there anyway to get the gui activated? 2.) Is there a way to properly shut down the server manually? Maybe a command to run in the terminal? 3.) Is there a way to shut down the server automatically on system shut down? When it does this, can I make it save the map and back it up to a compressed folder? 4.) This is a curiosity question: Before this method, I was booting the Minecraft server from the terminal. When I was watching the processor usage (while the server was up), it was idling around 60% with no one on the server and 80-90% when some one was on. After setting it up to run on boot, the processor now idles around 10-20% with no one on and I only managed to get it up to 60% by flying (in creative mode). Can you explain why that made such a big difference? I am new to Linux and have little experience with it but I am learning. Thanks again, I really appreciate the help.

I am very new to Linux but I managed to get through and get it working. This was super helpful! Thanks you for posting it. I do have a few questions though: 1) On boot up, I have the command in the bash file to start up the gui however, the gui doesn’t pop up. Is there a way to get it to come up on boot? Or is there a command I can type in the terminal after its running? 2) Is there a way to manually shut it off? I used to to stop it by typing Ctrl+C in the terminal to end the process but on boot, the terminal window doesn’t pop up. So I can’t actually see the process running. 3) Before when I executed the command that starts the server in the terminal by hand, my processor was running at about 60% with no one on the server and about 80-90% when someone was on. However, now that the server starts on boot, it runs at about 20% with no one on and 60% while I fly in creative (I was trying to push the server). My question is, what is the difference between starting it normally and starting it on boot up? Why is there such a drastic reduction in processor usage? Again thank you for your help!

admin@yuno:/etc/systemd/system$ sudo systemd-analyze verify minecraft.service
[/etc/systemd/system/./minecraft.service:1] Invalid section header ‘[root@minecraft system]# cat minecraft.service’
minecraft.service: Failed to create minecraft.service/start: Unit minecraft.service is not loaded properly: Bad message. Looks like the first line of the service is causing errors, removing it seems to fix it.

Источник

Читайте также:  Linux mfp driver что это
Оцените статью
Adblock
detector