Windows Görev Zamanlayıcı, Minecraft sunucusunu makine her açıldığında kendiliğinden başlatmanın ek yazılım gerektirmeyen yoludur. Elektrik kesintisinden, Windows güncelleme yeniden başlatmasından veya beklenmedik bir kapanmadan sonra sunucuyu elle açmak zorunda kalmazsınız.
Ama bir kuralı var: sihirbazdaki Temel Görev Oluştur seçeneğiyle yapılan görevler Minecraft için çalışmaz. Çalışma klasörünü belirleyen “Başlangıç yeri” alanı ve ayrıcalık seçenekleri yalnızca tam Görev Oluştur penceresinde bulunur. Destek taleplerinde gördüğümüz “görev çalışıyor ama sunucu açılmıyor” vakalarının çoğu tam olarak bu tek alandan çıkıyor.
Görev Zamanlayıcı Ne Zaman Doğru Seçim?#
Görev Zamanlayıcı bir süreç denetçisi değildir. Görevi tetikler, süreci başlatır ve orada bırakır. Sunucu çöktüğünde onu yeniden ayağa kaldırmaz.
Şu durumlarda doğru araçtır:
- Makine yeniden başladığında sunucunun kendiliğinden açılmasını istiyorsunuz
- Belirli bir saatte yedekleme veya yeniden başlatma betiği çalıştırmak istiyorsunuz
- Makinede tek bir sunucu var ve elle müdahaleye erişiminiz var
Şu durumlarda ise NSSM ile Windows hizmeti daha uygundur: sunucu çöktüğünde otomatik kalkması gerekiyorsa, süreç düzgün kapatılmalıysa ya da sunucuyu services.msc üzerinden başkalarıyla birlikte yönetiyorsanız. Karşılaştırma tablosu bu sayfanın sonunda.
Ön Hazırlık: start.bat’ı Sağlama Alın#
Görev, bat dosyasını olduğu gibi çalıştırır. Elle çift tıkladığınızda açılmayan bir dosya görev üzerinden de açılmaz, üstelik hatayı göremezsiniz. Bu yüzden önce dosyayı masaüstünden test edin.
@echo off
title Minecraft Server - Paper 26.2
cd /d C:\minecraft\server
set JAVA="C:\Program Files\Eclipse Adoptium\jdk-25.0.4.7-hotspot\bin\java.exe"
set MEM=-Xms6G -Xmx6G
%JAVA% %MEM% -jar paper.jar nogui
Üç ayrıntıya dikkat edin. Birincisi, dosyanın başında cd /d satırı var; görev “Başlangıç yeri” alanını atlarsanız bile bu satır sizi kurtarır. İkincisi, java.exe tam yoluyla çağrılıyor; görev SYSTEM hesabında koştuğunda kullanıcı Path değişkenini göremeyebilir, bu yazım o riski ortadan kaldırır. Üçüncüsü, görevde pause satırı bulunmaz — pause görevi sonsuza kadar bekletir ve zamanlayıcı görevi bitmemiş sayar.
pause satırını çıkarın. Elle test için ayrı bir kopya tutun. Dosya elle çalıştırıldığında hemen kapanıyorsa önce start.bat açılıp kapanıyor sayfasındaki teşhis tablosunu uygulayın; görev bu sorunları çözmez, yalnızca gizler.Görevi Oluşturma: Adım Adım#
-
Görev Zamanlayıcı’yı açın#
Başlat menüsüne Görev Zamanlayıcı yazın veya Çalıştır penceresine
taskschd.mscgirin. Sol panelde Görev Zamanlayıcı Kitaplığı düğümünü seçin, sağdaki İşlemler panelinden Görev Oluştur bağlantısına tıklayın. Temel Görev Oluştur değil. -
Genel sekmesini doldurun#
Ad alanına
Minecraft Serveryazın. Güvenlik seçenekleri bölümünde “Kullanıcı oturum açmış olsun olmasın çalıştır” ile “Yalnızca kullanıcı oturum açtığında çalıştır” arasındaki farkı aşağıda ayrıntılı anlattık; şimdilik ikinci seçenekte kalın. En yüksek ayrıcalıklarla çalıştır kutusunu işaretleyin ve Yapılandırma listesinden işletim sisteminizi seçin. -
Tetikleyiciyi ekleyin#
Tetikleyiciler sekmesine geçip Yeni düğmesine basın. Görevi başlat açılır listesinden Başlangıçta seçeneğini seçin. Alt kısımdaki Görevi ertele kutusunu işaretleyip 1 dakika verin, sonra Tamam deyin.
-
Eylemi tanımlayın#
Eylemler sekmesinde Yeni deyin. Eylem alanı Programı başlat olarak kalsın. Program/komut dosyası alanına bat dosyasının tam yolunu yazın, Başlangıç yeri (isteğe bağlı) alanına da klasörü:
Program/komut dosyası : C:\minecraft\server\start.bat Başlangıç yeri : C:\minecraft\server -
Kaydedin ve elle test edin#
Tamam ile pencereyi kapatın. Kitaplık listesinde göreve sağ tıklayıp Çalıştır deyin. Sunucu açılmalı, Son çalıştırma sonucu sütununda
Görev şu anda çalışıyor (0x41301)görünmelidir. Bu bir hata değil, sunucunun ayakta olduğunun işaretidir.
Aynı görevi komut satırından oluşturmak isterseniz yönetici olarak açtığınız bir Komut İstemi’nde şu satır işi görür:
schtasks /create /tn "Minecraft Server" /tr "C:\minecraft\server\start.bat" /sc onstart /ru SYSTEM /rl HIGHEST
schtasks komutunun “Başlangıç yeri” karşılığı yoktur; bu yüzden komut satırıyla oluşturulan görevlerde bat dosyasının içindeki cd /d satırı zorunludur. Görevi sonradan arayüzden açıp Başlangıç yeri alanını doldurmanız da mümkün.
İkinci görev: günlük yeniden başlatma#
Başlangıç görevinin yanına bir de zamanlanmış yeniden başlatma koymak yaygın bir düzendir. Sunucu her gece belirli bir saatte kapanıp yeniden açılır; böylece birikmiş entity’ler temizlenir, bellek sıfırlanır ve küçük sızıntılar sorun büyümeden sıfırlanmış olur.
Bunun için ayrı bir bat dosyası hazırlayın. Aşağıdaki örnek sunucuyu düzgün kapatır, 30 saniye bekler ve tekrar açar:
@echo off
cd /d C:\minecraft\server
taskkill /IM java.exe /T
timeout /t 30 /nobreak
start "" "C:\minecraft\server\start.bat"
Sonra Görev Zamanlayıcı’da ikinci bir görev oluşturun: tetikleyicisi Günlük, saati oyuncu yoğunluğunun en düşük olduğu vakit (genelde sabaha karşı 05:00), eylemi de bu yeni bat dosyası olsun. Başlangıç yeri alanını burada da doldurmayı unutmayın.
taskkill komutu süreci düzgün kapatmaz, doğrudan sonlandırır; kaydedilmemiş chunk verileri kaybolabilir. Üretim sunucularında yeniden başlatmayı RCON üzerinden stop komutu göndererek yapın. Yöntemlerin karşılaştırması otomatik yeniden başlatma sayfasında; oyunculara önceden uyarı vermeyi de ihmal etmeyin.“Başlangıç yeri” Alanı Neden Boş Bırakılmaz?#
Bu alan “isteğe bağlı” yazdığı için herkes atlıyor, sonra da görevin neden çalışmadığını anlayamıyor. Şöyle ki: Görev Zamanlayıcı bir programı başlatırken çalışma klasörünü programın bulunduğu yere ayarlamaz. Varsayılan olarak C:\Windows\system32 kullanılır.
Sonuç şu olur: bat dosyası çalışır, java -jar paper.jar satırına gelir, Java o an bulunduğu klasörde paper.jar arar, system32 içinde böyle bir dosya yoktur ve süreç Error: Unable to access jarfile paper.jar diyerek çıkar. Görev geçmişinde ise çoğu zaman 0x8007010B yani “dizin adı geçersiz” kodunu görürsünüz.
"C:\minecraft\server" yazımı bu alanda kabul edilmez ve görev başlamaz; doğru yazım tırnaksız C:\minecraft\server biçimidir. Yolun sonuna ters bölü de koymayın.İki katmanlı güvence en iyisidir: hem bat dosyasının içine cd /d C:\minecraft\server satırını koyun, hem de Başlangıç yeri alanını doldurun. Birini unutursanız diğeri devreye girer.
“Kullanıcı oturum açmış olsun olmasın çalıştır” Seçeneğinin Bedeli#
Genel sekmesindeki bu seçenek, görevin sizin masaüstü oturumunuza bağlı olmadan çalışmasını sağlar. Uzak Masaüstü bağlantınızı kapattığınızda sunucu ayakta kalır, makine kimse oturum açmadan açıldığında bile sunucu başlar. Kulağa mükemmel geliyor ama bir bedeli var.
Bu modda görev ayrı bir oturumda koşar ve konsol penceresi hiçbir yerde görünmez. Uzak Masaüstü ile bağlansanız bile o pencereyi bulamazsınız. Sunucu çalışır, oyuncular girer, ama siz konsola stop, say veya op yazamazsınız. Süreci yalnızca Görev Yöneticisi’nin Ayrıntılar sekmesinde java.exe olarak görürsünüz.
| Seçenek | Konsol penceresi | RDP kapanınca | Kimse oturum açmadan |
|---|---|---|---|
| Yalnızca kullanıcı oturum açtığında çalıştır | Görünür, komut yazılabilir | Oturum kapatılırsa süreç ölür | Başlamaz |
| Kullanıcı oturum açmış olsun olmasın çalıştır | Gizli, komut yazılamaz | Ayakta kalır | Başlar |
Gizli konsolla yaşamayı seçerseniz sunucuya komut göndermenin yolu RCON’dur. server.properties dosyasında şu üç satırı ayarlayın:
enable-rcon=true
rcon.port=25575
rcon.password=uzun-ve-tahmin-edilemez-bir-parola
RCON portunu dış dünyaya açmayın, yalnızca yerel bağlantılara bırakın. Kurulum ve güvenli kullanım ayrıntıları RCON kurulumu sayfasında. Portları güvenlik duvarında yönetme adımları için Windows Güvenlik Duvarında port açma sayfasına bakın.
SYSTEM hesabında çalıştırırsanız parola sorulmaz: Kullanıcı veya Grup Değiştir düğmesine basıp nesne adına SYSTEM yazın ve Adları Denetle deyin. SYSTEM hesabı kullanıcı ortam değişkenlerini göremeyeceği için bat dosyasında java.exe tam yolunun yazılı olması bu senaryoda zorunludur.En Yüksek Ayrıcalıklarla Çalıştırma#
Genel sekmesindeki En yüksek ayrıcalıklarla çalıştır kutusu, görevin yönetici belirteciyle koşmasını sağlar. İşaretlenmezse görev sınırlı belirteçle çalışır ve şu üç yerde beklenmedik hatalar çıkabilir: sunucu klasörüne yazma, 25565 portunu bağlama ve büyük heap ayırma.
Bu kutuyu işaretlemek Windows Kullanıcı Hesabı Denetimi uyarısını da atlatır; aksi hâlde görev bir onay penceresi beklerken sessizce takılı kalır. Zaten görev arka planda çalıştığı için o pencereyi görüp onaylayacak kimse olmaz.
Koşullar ve Ayarlar Sekmelerinde Değiştirilecekler#
Bu iki sekme varsayılan hâlleriyle bırakılırsa sunucu bazen hiç başlamaz. Değiştirilmesi gereken maddeler kısa bir liste:
- Koşullar > Görevi yalnızca bilgisayar AC gücündeyse başlat
- İşareti kaldırın. Sunucu makinesi bir dizüstü ya da UPS üzerindeyse bu kutu görevi engeller.
- Koşullar > Bilgisayar boştaysa görevi başlat
- Kapalı kalsın. Sunucu makinesi hiçbir zaman “boşta” sayılmayabilir.
- Ayarlar > Görev istek üzerine çalıştırılabilsin
- Açık olsun. Elle test edebilmek için gerekir.
- Ayarlar > Görev şu süreden uzun çalışırsa durdur
- İşareti mutlaka kaldırın. Varsayılan 3 gündür; kaldırmazsanız sunucunuz üç gün sonra kendiliğinden kapanır.
- Ayarlar > Görev zaten çalışıyorsa
- Yeni örneği çalıştırma seçin. Aksi hâlde ikinci bir java.exe açılır ve iki süreç aynı dünya dosyasına yazmaya çalışır.
- Ayarlar > Görev başarısız olursa yeniden başlat
- İsterseniz 1 dakika aralık ve 3 deneme verin. Bu, çöken sunucuyu değil yalnızca başlatılamayan görevi kurtarır.
Görevi Test Etme ve Görev Geçmişinden Hata Ayıklama#
Görev geçmişi varsayılan olarak kapalıdır. Görev Zamanlayıcı’da sağ paneldeki Tüm Görev Zamanlayıcı Geçmişini Etkinleştir bağlantısına tıklayın. Bundan sonra görevi seçtiğinizde alttaki Geçmiş sekmesinde her tetiklenme, başlatma ve sonlanma kaydı görünür.
Görevin son durumunu komut satırından da okuyabilirsiniz:
schtasks /query /tn "Minecraft Server" /v /fo LIST
schtasks /run /tn "Minecraft Server"
schtasks /end /tn "Minecraft Server"
| Sonuç kodu | Anlamı | Minecraft tarafında sebebi |
|---|---|---|
0x0 | Görev başarıyla tamamlandı | Sunucu açıldı ve kapandı; bat dosyası erken çıkmış olabilir |
0x41301 | Görev şu anda çalışıyor | Normal durum, sunucu ayakta demektir |
0x41303 | Görev hiç çalıştırılmadı | Tetikleyici henüz gerçekleşmedi |
0x1 | Yanlış işlev / genel hata | Yol hatası, dosya adı start.bat.txt veya Java bulunamadı |
0x2 | Sistem belirtilen dosyayı bulamıyor | Program/komut dosyası alanındaki yol hatalı |
0x8007010B | Dizin adı geçersiz | Başlangıç yeri boş ya da hatalı yazılmış |
0x80070005 | Erişim reddedildi | En yüksek ayrıcalıklar işaretlenmemiş veya hesap yetkisiz |
Kod 0x0 ise ve sunucu ayakta değilse yanıltıcı bir durumdasınız demektir: görev başarıyla çalıştı, bat dosyası da başarıyla bitti. Yani sunucu bir hata verip kapandı. Bu durumda logs\latest.log dosyasının son satırlarına bakın; Java tarafındaki gerçek sebep orada yazar.
Görev Zamanlayıcı ile NSSM Karşılaştırması#
-
NSSM — Non-Sucking Service ManagerÜcretsizİndir
Bağlantı resmî nssm.cc adresine gider. Kurulum adımlarının tamamı Minecraft sunucusunu Windows servisi olarak çalıştırma sayfasında.
| Ölçüt | Görev Zamanlayıcı | NSSM ile Windows hizmeti |
|---|---|---|
| Ek yazılım | Gerekmez, Windows’un parçası | NSSM indirilir |
| Makine açılışında başlatma | Evet | Evet |
| Çöken süreci yeniden başlatma | Hayır | Evet, otomatik |
| Düzgün kapatma (stop komutu) | Hayır, süreç öldürülür | Konsola giriş gönderebilir |
| Konsol penceresi | Ayara göre görünür veya gizli | Daima gizli |
| Log dosyasına yönlendirme | Elle ayarlanır | Yerleşik stdout/stderr yönlendirmesi |
| Yönetim arayüzü | Görev Zamanlayıcı | services.msc ve nssm edit |
| Kurulum süresi | Yaklaşık 5 dakika | Yaklaşık 10 dakika |
Pratik öneri: küçük ve tek sunuculu kurulumlarda Görev Zamanlayıcı fazlasıyla yeterlidir. Oyuncu sayısı arttıkça ve sunucu gerçekten 7/24 ayakta kalması gereken bir hâle geldiğinde hizmete geçin. Zamanlanmış yeniden başlatma kurmak istiyorsanız ikisi birlikte de kullanılabilir; yöntemleri otomatik yeniden başlatma sayfasında anlattık.
Bir de donanım tarafı var. Otomatik başlatma sunucunun ayakta kalmasını sağlar ama akıcı kalmasını sağlamaz; Minecraft’ın ana tick döngüsü tek çekirdekte çalıştığı için belirleyici olan saat hızıdır. Batihost’ta Minecraft sunucuları AMD Ryzen 9 7900X / 7950X sınıfı işlemciler ve NVMe SSD üzerinde, en düşük pakette 8 GB RAM ile çalışır. Windows kurulu bir makine üzerinde kendi düzeninizi kurmak isterseniz VDS paketlerine bakabilirsiniz.
Özetle#
Görev Zamanlayıcı ile Minecraft sunucusunu otomatik başlatmak beş dakikalık bir iştir, yeter ki üç ayrıntı doğru olsun: Görev Oluştur penceresini kullanın (Temel Görev değil), tetikleyiciyi Başlangıçta seçip 1 dakika erteleyin ve Başlangıç yeri alanına C:\minecraft\server yazın.
Ayarlar sekmesinde iki kutuyu da unutmayın: “Görev şu süreden uzun çalışırsa durdur” işaretini kaldırın, “Görev zaten çalışıyorsa” kuralını Yeni örneği çalıştırma yapın. Hata ayıklarken görev geçmişini etkinleştirin; 0x8007010B gördüğünüzde sorunun Başlangıç yeri alanında olduğunu bilirsiniz.
Konsola komut yazabilmek istiyorsanız görevi kullanıcı oturumuna bağlı bırakın, gerçekten kesintisiz çalışma istiyorsanız NSSM ile hizmete geçin. Görev başlangıçta çalışıp sunucu hala açılmıyorsa logs\latest.log dosyasıyla birlikte destek talebi açın.