Bagian 5 β Deploy Aplikasi Web Β· Langkah 18 dari 38
Konsep: Proses yang Harus Tetap Hidup
Kenapa app yang jalan di terminal ikut mati saat terminal ditutup β masalah inti yang dipecahkan process manager.
Coba sendiri, lihat langsung masalahnya
Di VM (lewat sesi SSH), jalankan server web sederhana tanpa tool apa pun:
$python3 -m http.server 8000server file statis super sederhana bawaan Python
Dari browser laptop, buka http://IP_VM:8000 β jalan. Sekarang tutup jendela SSH (atau Ctrl+C lalu exit). Muat ulang browser β MATI. Aplikasi ikut mati bersamanya.
Kenapa? Linux menyusun proses seperti silsilah keluarga: sesi SSH menyalakan shell (bash), dan aplikasi yang kamu jalankan adalah ANAK dari shell itu. Saat SSH terputus, kernel mengirim sinyal SIGHUP (hangup) ke shell, dan shell 'pensiun' bersama anak-anaknya. Server yang sehat tidak boleh ikut mati ketika sesi adminnya selesai β padahal itu default-nya.
Apa yang dibutuhkan server sungguhan
- Aplikasi tetap hidup saat TIDAK ada sesi terminal terbuka.
- Auto-restart kalau crash β proses yang mati karena bug harus hidup lagi dalam hitungan detik, bukan menunggu kamu sadar besok pagi.
- Auto-start saat server reboot β habis update kernel, aplikasi harus naik sendiri.
Tiga syarat itu = pekerjaan sebuah process manager. Ada banyak tools yang memenuhi; di web ini kamu akan mengenal dua pendekatan besar:
- PM2 β process manager khusus ekosistem Node.js/JS, diinstal lewat npm, sangat simpel.
- systemd β process manager bawaan Linux di level sistem operasi: bisa menjaga proses bahasa APA PUN (Go, Python, PHP, bahkan Node). Semua service yang sudah kamu pakai diam-diam (sshd, nginx) dikelola olehnya.
β Tanda berhasil β centang kalau sudah kamu lihat/buktikan sendiri
Tombol βlanjutβ terbuka setelah semua tercentang β bukan hukuman, tapi jaring pengaman: pastikan step ini benar-benar beres sebelum menumpuk step berikutnya di atasnya.
Lagi bermasalah?
Kalau aku jalankan dari terminal DESKTOP VM (bukan SSH), ditutup juga ikut mati?
Ya β jendela terminal emulator juga induk shell-nya. Menutup jendela = shell mati = SIGHUP. Yang membedakan hanya siapa yang memegang 'tali' sesi. Solusinya tetap sama: process manager.