Memilih antara PM2 atau Systemd untuk Menjalankan Aplikasi dan Bot 24/7

Baik systemd maupun PM2 bertujuan membuat aplikasi atau bot kita tetap berjalan 24/7, namun keduanya berada di tingkat yang berbeda. Systemd adalah manajer layanan sistem operasi (init) yang sudah menjadi bawaan Debian, sedangkan PM2 adalah process manager yang berjalan di atas sistem operasi dan fokus mengawasi aplikasi Node.js. Artikel ini membandingkan keduanya secara detail agar Anda dapat memilih yang paling sesuai.

Sebelum membaca perbandingan, silakan lihat panduan langkah demi langkah masing-masing: Menjalankan Aplikasi atau Bot Menggunakan Systemd dan Menjalankan Aplikasi atau Bot Menggunakan PM2.

Cara Kerja

Systemd membaca berkas unit .service yang kita letakkan di /etc/systemd/system/, lalu mengawasi proses sesuai konfigurasi (misalnya Restart=always). PM2, di sisi lain, adalah program yang kita jalankan sendiri; ia membungkus aplikasi kita dalam proses yang diawasinya, dan untuk bertahan saat reboot PM2 mendaftarkan dirinya ke systemd melalui pm2 startup. Dengan kata lain, pada Debian modern, PM2 pun pada akhirnya memanfaatkan systemd di belakang layar.

Perbandingan Detail

AspekSystemdPM2
Fokus utamaManajer layanan sistem operasi.Process manager untuk aplikasi Node.js.
Cara menjalankanUnit file .service di /etc/systemd/system.Perintah pm2 start script.js.
Auto-restartVia Restart=always di unit.Aktif secara bawaan.
Startup saat bootsystemctl enable.pm2 save lalu pm2 startup.
Penyimpanan logjournalctl (terpusat di OS).pm2 logs (di ~/.pm2/logs).
Monitoringsystemctl status, journalctl.pm2 monit, pm2 list (dashboard).
Multi-core / clusterTidak langsung, butuh unit tambahan.Cluster mode bawaan (instances).
Bahasa aplikasiBebas (Node, Python, Go, dll).Fokus Node.js, bisa lain via interpreter.
KetergantunganBawaan Linux (Debian).Perlu npm install -g pm2.
Konsumsi resourceSangat ringan.Sedikit lebih berat (Node + daemon).
Tingkat kesulitanMenengah (menulis unit).Ramah pemula (perintah sederhana).

Keunggulan dan Kekurangan

LayananKeunggulanKekurangan
SystemdRingan, bawaan OS, mendukung semua bahasa, kontrol resource penuh.Penulisan unit agak teknis; cluster butuh konfigurasi tambahan.
PM2Sangat mudah, monitoring & cluster bawaan, ramah pemula Node.js.Khusus ekosistem Node.js, perlu instalasi, memakai resource lebih.

Perbandingan Perintah di Terminal

Agar Anda dapat membandingkan secara langsung, berikut perintah umum yang sering dipakai pada masing-masing layanan untuk mengelola aplikasi bernama mybot.

TugasSystemdPM2
Menjalankan aplikasisystemctl start mybot.servicepm2 start bot.js --name mybot
Mengecek statussystemctl status mybot.servicepm2 list
Melihat logjournalctl -u mybot.service -fpm2 logs mybot
Restartsystemctl restart mybot.servicepm2 restart mybot
Menghentikan sementarasystemctl stop mybot.servicepm2 stop mybot
Aktif otomatis saat bootsystemctl enable mybot.servicepm2 save lalu pm2 startup
Menghapus dari daftarsystemctl disable mybot.servicepm2 delete mybot

Sebagai ilustrasi, berikut urutan perintah lengkap untuk menjadikan bot aktif 24/7 pada masing-masing layanan:

Systemd:

bash
sudo systemctl daemon-reload
sudo systemctl enable mybot.service
sudo systemctl start mybot.service
systemctl status mybot.service

PM2:

bash
pm2 start bot.js --name mybot
pm2 save
pm2 startup
pm2 list

Rekomendasi: Mana yang Dipakai?

  • Gunakan Systemd jika Anda ingin solusi paling ringan dan stabil, menjalankan aplikasi bukan Node.js (Python, Go, Rust), atau butuh kontrol penuh atas izin dan resource tingkat sistem.
  • Gunakan PM2 jika aplikasi Anda berbasis Node.js, Anda menginginkan perintah sederhana, serta fitur cluster mode dan dasbor pemantauan tanpa konfigurasi rumit.
  • Gunakan keduanya bersama untuk hasil terbaik: jalankan PM2, lalu pasang pm2 startup agar PM2 (dan seluruh bot Anda) otomatis hidup saat VPS reboot melalui systemd.

Artikel Terkait