Normalmente, você usaria um serviço para ser executado como um usuário específico em um determinado momento durante a inicialização.
Acho que a solução ideal para "Como executar um servidor Minecraft no login" é criar um novo usuário, minecraft
, e garantir que seu servidor HTTP ( apache
ou nginx
) tenha acesso a esses arquivos gerados por overviewer
. Quando você executa overviewer
, deseja fazer isso como o usuário minecraft
.
O seguinte assume que /home/minecraft/minecraft-1.7/
é o diretório que contém os arquivos do servidor de minecraft, como o diretório world
, e que, dentro desse diretório, você tem minecraft_server.jar. Além disso, nginx
é usado para atuar como um servidor HTTP.
Você pode criar esse usuário com sudo useradd minecraft -m
. Por não definir uma senha, você só poderá se tornar esse usuário com sudo su - minecraft
.
O usuário minecraft
teria a seguinte entrada cron ( crontab -e
as minecraft
):
0 * * * * /usr/bin/overviewer.py --rendermodes=smooth-lighting,cave /home/minecraft/minecraft-1.7/world/ /home/minecraft/minecraft-1.7/www-overviewer/
O ideal é que você execute o servidor Minecraft usando o upstart ( /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
Habilite-o para iniciar na inicialização com sudo systemctl enable minecraft-server
e diga para começar agora com sudo systemctl start minecraft-server
.
... enquanto configura o NGINX com:
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;
}
}
Não existe nenhuma razão para executar minecraft
, overviewer
, etc como root e deve ser evitado.