BerandaOS WindowsCara Membuat Windows Service dengan CMD dan NSSM

Cara Membuat Windows Service dengan CMD dan NSSM

Artikel ini menyajikan dua metode andal untuk membuat Windows Service: menggunakan Command Prompt (CMD) dan Non-Sucking Service Manager (NSSM). Anda akan mempelajari langkah demi langkah, perbandingan fitur, serta praktik terbaik dari sudut pandang teknisi dan gamer. Setelah membaca, Anda mampu mengubah aplikasi biasa menjadi service latar belakang yang stabil dan otomatis.

Pernahkah Anda ingin sebuah program terus berjalan meski tidak ada pengguna yang login? Atau mungkin Anda menjalankan server game sendiri dan ingin server tetap aktif tanpa harus membuka desktop setiap saat? Jawabannya adalah Windows Service.

Windows Service adalah program istimewa yang beroperasi di balik layar sistem operasi. Ia tidak memiliki jendela, tidak muncul di taskbar, dan tidak memerlukan interaksi pengguna. Service dikendalikan oleh komponen bernama Service Control Manager (SCM), yang bertugas memulai, menghentikan, serta memantau setiap service. Yang lebih menarik: service bisa diatur agar berjalan sejak komputer dinyalakan, bahkan sebelum Anda login.

Seorang gamer profesional atau teknisi sistem tidak bisa mengabaikan kekuatan Windows Service. Inilah fondasi otomatisasi di Windows.

Sayangnya, tidak semua program bisa langsung dijadikan service. Aplikasi biasa sering gagal karena tidak merespons perintah stop atau pause dari SCM. Oleh karena itu, Anda memerlukan metode khusus. Dua cara paling efektif adalah menggunakan utilitas bawaan sc.exe (CMD) dan alat pihak ketiga bernama NSSM. Keduanya memiliki kelebihan masing-masing. Mari kita bedah satu per satu.

Apa Itu Windows Service dan Mengapa Anda Perlu Membuatnya?

Secara teknis, Windows Service adalah proses yang berjalan di sesi khusus (session 0) yang terisolasi dari sesi interaktif pengguna. Isolasi ini membuat service tetap hidup meskipun Anda keluar dari akun atau mengganti pengguna. SCM menyimpan setiap service dalam registri di HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services. Di sana tercatat tipe startup (otomatis, manual, dinonaktifkan), nama akun eksekusi, serta opsi pemulihan jika service crash.

Lantas, kapan Anda perlu membuat Windows Service sendiri? Berikut skenario umum di kalangan profesional dan gamer:

  • Menjalankan dedicated server game (Minecraft, Valheim, ARK) agar server online 24/7 tanpa perlu desktop terbuka.
  • Mengotomatisasi skrip backup ke NAS atau cloud.
  • Monitoring sumber daya jaringan atau suhu komponen.
  • Menjalankan bot Discord atau Telegram sebagai layanan latar belakang.
  • Mengabstraksi aplikasi lama yang butuh berjalan terus tanpa intervensi.

Sebelum mempraktikkan, siapkan file executable (.exe) atau batch (.bat) yang ingin Anda jadikan service. Pastikan file tersebut sudah diuji dan berfungsi normal saat dijalankan langsung. Jangan gunakan file yang membutuhkan input keyboard terus-menerus, karena service tidak memiliki akses ke layar interaktif (kecuali Anda mengatur izin khusus).

Metode 1: Membuat Windows Service dengan CMD (sc.exe)

Command Prompt menyediakan senjata ampuh bernama sc.exe (Service Controller). Alat ini sudah tersedia sejak Windows XP dan tidak perlu instalasi. Kekurangannya, sc.exe tidak mendukung restart otomatis dan kurang ramah untuk aplikasi dengan GUI. Namun, untuk skenario sederhana seperti menjalankan skrip batch atau aplikasi console, metode ini sangat cepat.

Langkah-Langkah Detail Menggunakan CMD

1. Buka CMD sebagai administrator. Tekan tombol Windows, ketik “cmd”, klik kanan, pilih “Run as administrator”. Tanpa hak admin, perintah sc.exe tidak akan bisa membuat service.

2. Ketikkan sintaks dasar berikut. Perhatikan spasi dan tanda kutip dengan seksama.

sc.exe create <service_name> displayname= <displayname> binpath= <path_file_executable>

Penjelasan parameter:

  • service_name : Nama internal yang unik, tanpa spasi. Contoh: MinecraftServer.
  • displayname : Nama yang tampil di Services.msc, boleh mengandung spasi. Contoh: "Minecraft Dedicated Server".
  • path_file_executable : Jalur lengkap ke file exe atau bat. Jika ada spasi, bungkus dengan kutip ganda. Contoh: "C:\Program Files\MyApp\server.exe".

3. Eksekusi contoh nyata. Misal Anda memiliki file C:\BardiminApp.exe dan ingin menamai service “BardiminServ”.

sc.exe create "BardiminServ" displayname= "Bardimin Service" binPath= "C:\BardiminApp.exe"

Perhatikan spasi setelah tanda sama dengan pada displayname= dan binpath=. Ini adalah aturan kaku sc.exe. Jika Anda menulis displayname="Bardimin Service" tanpa spasi, perintah akan gagal dengan error sintaks. Sehinga (typo ringan) Anda harus teliti.

Membuat Windows Service dengan perintah sc di Command Prompt
Tampilan perintah sc.exe saat membuat Windows Service baru

4. Verifikasi service. Buka Services.msc (tekan Win+R, ketik services.msc). Cari service dengan displayname “Bardimin Service”. Statusnya masih “Stopped”. Klik kanan, pilih Start. Alternatif, gunakan perintah sc start BardiminServ.

5. (Opsional) Atur tipe startup otomatis. Agar service berjalan sejak booting, jalankan:

sc config "BardiminServ" start= auto

Kelemahan metode CMD: sc.exe tidak menyediakan mekanisme restart jika crash. Jika aplikasi Anda tiba-tiba berhenti, service akan mati dan tidak bangkit kembali. Untuk kebutuhan produksi atau server game yang harus uptime tinggi, Anda memerlukan NSSM.

Metode 2: Membuat Windows Service dengan NSSM (Non-Sucking Service Manager)

NSSM adalah alat open source yang didesain khusus untuk menyelesaikan “kelemahan” sc.exe. Nama “Non-Sucking” sendiri mengindikasikan bahwa tool ini tidak menyebalkan seperti metode bawaan. NSSM mampu memantau proses anak, me-restart otomatis, serta mencatat output console ke file log. Tool ini menjadi favorit di kalangan teknisi server dan gamer yang menjalankan server game modded.

Langkah-Langkah Menggunakan NSSM (Lengkap dengan GUI)

1. Unduh NSSM. Kunjungi situs resmi nssm.cc/download. Pilih versi 32-bit atau 64-bit sesuai arsitektur Windows Anda. Jangan ragu menggunakan versi terbaru (saat artikel ini ditulis adalah 2.24).

2. Ekstrak ke folder permanen. Contoh: buat folder C:\nssm, lalu ekstrak isi zip ke dalamnya. Folder win64 atau win32 akan muncul. Jangan letakkan di folder sementara karena file akan terus digunakan selama service berjalan.

3. Buka CMD sebagai administrator. Arahkan direktori ke lokasi nssm.exe. Contoh:

cd C:\nssm\win64

4. Jalankan GUI installer. Ketik perintah:

nssm install

Sebuah jendela GUI akan terbuka. Ini adalah kelebihan utama NSSM: Anda tidak perlu mengingat sintaks rumit.

Antarmuka NSSM untuk membuat Windows Service dengan mudah
Jendela konfigurasi NSSM: isi path executable, direktori, dan nama service

5. Isi tab “Application”. Bagian ini wajib diisi:

  • Path : Klik tombol “…” dan cari file exe/bat Anda.
  • Startup directory : Folder tempat aplikasi bekerja (biasanya sama dengan folder file exe). Isi agar aplikasi tidak bingung mencari file konfigurasi.
  • Arguments : Jika aplikasi membutuhkan parameter, misal --port 25565, tulis di sini.
  • Service name : Nama internal service. Isi dengan nama unik tanpa spasi.

6. Buka tab “Details” (opsional). Isi Display name (nama tampilan) dan Description (deskripsi). Ini membantu Anda mengenali service di Services.msc.

7. Buka tab “Exit actions” – ini yang paling krusial. NSSM memungkinkan Anda menentukan aksi jika aplikasi keluar (exit):

  • Restart always : Nyalakan ulang service setiap kali mati (tidak peduli kode exit).
  • Restart if exit code != 0 : Restart hanya jika terjadi error.
  • Take no action : Mati total, tidak restart.

Untuk server game, pilih “Restart always” dengan delay 5-10 detik. Prosses (typo ringan) ini menjamin uptime maksimal.

8. Klik tombol “Install service”. NSSM akan mendaftarkan service ke SCM. Anda akan melihat pesan “Service ‘namaservice’ installed successfully!”.

9. Verifikasi dan jalankan service. Buka Services.msc, cari service Anda, lalu klik Start. Alternatif, dari CMD: nssm start namaservice. Untuk melihat log output (stdout/stderr), buka folder C:\nssm\logs secara default.

Kelebihan NSSM yang Wajib Anda Tahu

  • Restart otomatis yang cerdas : Bisa bedakan exit normal vs crash.
  • Logging lengkap : Semua yang dicetak aplikasi ke console tersimpan ke file.
  • Mudah mengedit service : Cukup nssm edit namaservice tanpa perlu uninstall.
  • Menghapus service dengan aman : nssm remove namaservice confirm.

Perbandingan Cepat: sc.exe vs NSSM

Aspeksc.exe (CMD)NSSM
KetersediaanBawaan Windows, tanpa instalasiHarus unduh, sekali ekstrak
Dukungan restart otomatisTidak ada (perlu konfigurasi sc failure yang rumit)Ya, sangat mudah via GUI
Logging outputTidak adaYa, otomatis ke file
Kemudahan untuk pemulaPerlu hafal sintaks dan spasiGUI intuitif
Menjalankan aplikasi GUISering gagalBisa, dengan pengaturan khusus
Ukuran file~50KB (integrasi sistem)~300KB
Perbandingan metode membuat Windows Service: sc.exe bawaan vs NSSM

Jika Anda hanya perlu service sederhana dan tidak butuh restart otomatis, sc.exe sudah cukup. Namun untuk keandalan tinggi, terutama untuk server game atau bot kritis, NSSM adalah pilihan tepat.

Tips Mengelola Windows Service agar Tetap Stabil

Setelah service berjalan, Anda perlu memantau dan memeliharanya. Berikut praktik terbaik dari teknisi berpengalaman:

  • Gunakan akun dengan hak terbatas. Jangan gunakan LocalSystem jika tidak perlu. Buat akun khusus (misal svc_game) dengan hak “Log on as a service”.
  • Atur recovery options untuk service dari sc.exe: sc failure "nama" reset= 86400 actions= restart/5000/restart/10000/restart/30000. Ini akan merestart service setelah 5 detik jika gagal.
  • Pantau log secara berkala. Untuk NSSM, log tersimpan di subfolder logs. Untuk sc.exe, Anda harus mengarahkan output aplikasi ke file sendiri.
  • Uji service dalam mode console sebelum diinstal. Pastikan aplikasi bisa berjalan tanpa input pengguna.
  • Catat perubahan konfigurasi. Gunakan dokumentasi sederhana untuk memudahkan troubleshooting.

Kutipan dari praktisi: “Saya menggunakan NSSM untuk menjalankan server Minecraft komunal. Dengan pengaturan restart otomatis, server tetap online meskipun kadang crash karena konflik mod. Uptime saya mencapai 99,9% dalam 6 bulan terakhir.” – Andi, teknisi game server.

Kesimpulan: Pilih Metode yang Tepat untuk Kebutuhan Anda

Membuat Windows Service tidaklah rumit jika Anda memahami dua metode utama. Command Prompt (sc.exe) menawarkan kecepatan dan tanpa instalasi, cocok untuk skrip sederhana dan teknisi yang suka baris perintah. Sementara itu, NSSM memberikan fitur restart otomatis, logging, dan kemudahan konfigurasi – ideal untuk server game, bot, atau aplikasi yang membutuhkan uptime tinggi.

Dengan panduan langkah demi langkah di atas, Anda kini memiliki pengetahuan untuk mengubah hampir semua aplikasi console atau batch menjadi service Windows yang andal. Jangan lupa untuk selalu menguji di lingkungan non-produksi terlebih dahulu. Selamat mengotomatisasi sistem Anda!

Butuh referensi tambahan? Kunjungi dokumentasi resmi Microsoft tentang Service Control Manager atau forum NSSM untuk diskusi lanjutan.

Artikel Terbaru