Я не эксперт. Но у меня была аналогичная проблема, когда я настраивал вещи в compiz-config-settings-manager. Поэтому я открыл compiz из терминала, запустив: ccsm. Затем я нажал на «Ubuntu Unity Plugin», чтобы активировать его. После перезагрузки все было в порядке.
Надеюсь, что это поможет.
Я сделал сценарий, как запуск моего сервера, но должен быть лучший способ. Кроме того, не очень элегантный, просто набрав java -jar 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
Из вашего имени пользователя, я собираюсь предположить, что вы пытаетесь запустить выделенный сервер и опубликуете мой ответ как таковой. Эта система была проверена на битву и в настоящее время используется сетью, где я являюсь администратором инфраструктуры (наряду с другими причудливыми функциями), а также бесчисленными другими серверами начального уровня и производственными сетями.
Если вы хотите создать постоянный сервер автоматического перезапуска, вы можете посмотреть создание службы 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, чтобы вышеупомянутая команда послала грациозную остановку. Это, однако, будет оставлено в качестве упражнения для читателя.
Резервные сценарии все еще могут выполняться, хотя было бы целесообразно использовать создание службы systemd , которая Записывает всю папку и сохраняет ее где-то в безопасности.
Я сделал сценарий, как запуск моего сервера, но должен быть лучший способ. Кроме того, не очень элегантный, просто набрав java -jar 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
Из вашего имени пользователя, я собираюсь предположить, что вы пытаетесь запустить выделенный сервер и опубликуете мой ответ как таковой. Эта система была проверена на битву и в настоящее время используется сетью, где я являюсь администратором инфраструктуры (наряду с другими причудливыми функциями), а также бесчисленными другими серверами начального уровня и производственными сетями.
Если вы хотите создать постоянный сервер автоматического перезапуска, вы можете посмотреть создание службы 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, чтобы вышеупомянутая команда послала грациозную остановку. Это, однако, будет оставлено в качестве упражнения для читателя.
Резервные сценарии все еще могут выполняться, хотя было бы целесообразно использовать создание службы systemd , которая Записывает всю папку и сохраняет ее где-то в безопасности.