Я уже испортил свою систему однажды, таким образом, я собираюсь спрашивать более конкретно:
Что должны сделать шаги, так, чтобы команда могла работать с sudo полномочиями при запуске?
Вот то, что я знаю до сих пор: у Меня есть эта команда, содержа "":
java -jar /home/joe/minecraft/minecraft_server/MCpal.jar /media/joe/Chest/mc_backups 12288 server.jar "overviewer.py --rendermodes=smooth-lighting {2}/Galamor /home/joe/minecraft/Overviewer/map"
Я перешел в Preferences -> Default applications for LXSession
и добавил строку: lxterminal -e COMMAND
к разделу автоматического запуска.
Это запускает терминал, выполняющий мою команду (в этом случае, запуская мой диспетчер серверов Minecraft). Чему-то в рамках этого процесса нужны sudo полномочия. Так как я записал эту программу сам и так как я доверяю Mojang, я просто хочу выполнить эту команду на sudo уровне, не будучи должен ввести в моем пароле.
Я пытался использовать sudo visudo
дать моему пользователю права выполнить его, не вводя пароль. Я, кажется, не разбираюсь в синтаксисе.
Вот, как я думаю, что это должно быть:
joe ALL=(ALL) NOPASSWD: java -jar /home/joe/minecraft/minecraft_server/MCpal.jar /media/joe/Chest/mc_backups 12288 server.jar "overviewer.py --rendermodes=smooth-lighting {2}/Galamor /home/joe/minecraft/Overviewer/map"
Где ошибка здесь?
Я любил бы его, если Вы могли бы ответить шаг за шагом. Возможно, я использовал неправильную строку для ввода его или независимо от того, что это могло быть.
Обычно, Вы использовали бы сервис для выполнения как определенный пользователь в определенное время во время начальной загрузки.
Я думаю идеальное решение, "Как работать, сервер Minecraft при входе в систему" должен создать нового пользователя, minecraft
, и удостоверьтесь что Ваш сервер HTTP (apache
или nginx
) имеет доступ к тем файлам, сгенерированным overviewer
. Когда Вы работаете overviewer
, Вы хотите сделать это как minecraft
пользователь.
Следующее принимает это /home/minecraft/minecraft-1.7/
каталог, который содержит Ваши файлы сервера Minecraft, такой как world
каталог, и что в рамках того каталога, у Вас есть minecraft_server.jar. Кроме того, nginx
используется для действия как сервер HTTP.
Можно создать этого пользователя с sudo useradd minecraft -m
. Не устанавливая пароль, Вы только сможете стать этим пользователем с sudo su - minecraft
.
minecraft
у пользователя была бы следующая запись крона (crontab -e
как minecraft
):
0 * * * * /usr/bin/overviewer.py --rendermodes=smooth-lighting,cave /home/minecraft/minecraft-1.7/world/ /home/minecraft/minecraft-1.7/www-overviewer/
Идеально, у Вас будет сервер Minecraft выполненным с помощью выскочки (/etc/systemd/system/minecraft-server.service
):
[Unit]
Description=Minecraft Server
[Service]
WorkingDirectory=/home/minecraft/minecraft-1.7/
User=minecraft
Group=minecraft
Restart=on-failure
RestartSec=20 5
ExecStart=/usr/bin/java -Xms1536M -Xmx1536M -jar minecraft_server.jar nogui
[Install]
WantedBy=multi-user.target
Позвольте этому запуститься при начальной загрузке с sudo systemctl enable minecraft-server
, и скажите этому запускаться теперь с sudo systemctl start minecraft-server
.
... в то время как Вы настраиваете NGINX с:
server {
listen 8888;
client_max_body_size 50M;
server_name _ minecraft.DOMAIN.tld
charset UTF-8;
expires max;
gzip on;
gzip_buffers 16 8k;
gzip_comp_level 4;
gzip_http_version 1.0;
gzip_min_length 1280;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript text/x-js;
gzip_vary on;
gzip_static on;
add_header Cache-Control "public";
location / {
root /home/minecraft/minecraft-1.7/www-overviewer;
}
}
Нет никакой причины работать minecraft
, overviewer
, и т.д. как корень, и должен избежаться.