screen veya tmux pratik bir çözümdür ama makine yeniden başladığında sunucuyu elle tekrar açmanız gerekir. systemd, sunucuyu gerçek bir sistem servisi haline getirerek bu sorunu tamamen ortadan kaldırır.
Servis Dosyasını Oluşturma
sudo nano /etc/systemd/system/minecraft.service
İçine şunu yazın (yolları ve kullanıcı adını kendinize göre değiştirin):
[Unit]
Description=Minecraft Server
After=network.target
[Service]
User=minecraft
WorkingDirectory=/home/minecraft/server
ExecStart=/usr/bin/java -Xms4G -Xmx4G -jar paper.jar nogui
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
Neden ayrı bir kullanıcı?
Sunucuyu root yerine ayrı bir sistem kullanıcısıyla (örn.
minecraft) çalıştırmak, olası bir güvenlik açığında zararı sınırlar. sudo adduser --system --group minecraft ile hızlıca oluşturabilirsiniz.
Servisi Etkinleştirme
sudo systemctl daemon-reload
sudo systemctl enable minecraft
sudo systemctl start minecraft
Yönetim Komutları
| Komut | Ne yapar |
|---|---|
systemctl status minecraft | Sunucunun durumunu gösterir |
systemctl restart minecraft | Yeniden başlatır |
systemctl stop minecraft | Durdurur |
journalctl -u minecraft -f | Canlı logları izler |
Konsola komut yazamazsınız
systemd ile çalışan bir sunucuya doğrudan konsol komutu (örn.
/say merhaba) yazamazsınız. Bunun için RCON destekli bir eklenti veya panel kullanmanız gerekir.
Alternatif olarak konsola doğrudan erişim istiyorsanız screen/tmux yöntemine bakabilirsiniz.