Salah satu momen paling ngeselin pas baru pertama kali sewa VPS atau bikin server rumahan adalah ini: kita udah susah payah ngetik kode Python, ngejalanin bot atau skrip otomasi di terminal, eh begitu jendela SSH ditutup atau koneksi Wi-Fi putus sekejap, programnya langsung ikut mati seketika.
Penyebabnya sepele: secara default, sistem Linux bakal ngirim sinyal SIGHUP (hangup) ke semua proses anak di dalam sesi terminal yang ditutup. Kalau kita gak ngasih instruksi khusus, Linux bakal nganggep proses itu udah gak dibutuhin lagi.
Biar kodingan kamu bisa terus jalan 24 jam nonstop tanpa harus biarin laptop tetap nyala buka terminal, ada beberapa cara yang bisa dipakai, mulai dari cara kilat sampai cara paling rapi dan tahan banting.
1. Trik Cepat: Menggunakan Nohup dan Background Operator (&)
Ini biasanya cara pertama yang ditemuin orang pas nyari solusi cepat di internet:
nohup python3 bot.py > bot.log 2>&1 &
Perintah nohup bakal ngasih tahu Linux buat ngeblokir sinyal SIGHUP, sementara tanda & di ujung berfungsi mindahin eksekusi ke background biar terminal kamu langsung bebas.
Kelebihan: Gak perlu instal apa-apa, langsung jalan dalam 3 detik.
Kekurangan: Rentan banget. Kalau program kamu crash karena error jaringan, dia gak bakal restart sendiri. Terus kalau server mendadak restart, skrip kamu hilang dan harus dijalankan manual lagi. Mematikan prosesnya juga agak ribet karena harus nyari nomor proses (PID) manual pakai ps aux | grep python lalu di-kill.
2. Jalan Tengah: Menggunakan Terminal Multiplexer (Tmux / Screen)
Kalau kamu butuh mantau proses yang interaktif atau sewaktu-waktu pengen ngintip terminalnya lagi, pakai tmux atau screen adalah pilihan paling nyaman.
Cukup bikin session baru dengan perintah tmux new -s bot-session, jalanin skrip kodingan kamu di situ, lalu tekan shortcut Ctrl+B lalu D buat detach (keluar dari tampilan tanpa matiin proses).
Kapan pun kamu konek lagi ke SSH beberapa hari kemudian, tinggal ketik tmux attach -t bot-session dan tampilannya bakal balik persis seperti terakhir ditinggal. Sangat cocok buat eksperimen atau debugging jangka pendek.
3. Standar Industri: Bikin Systemd Service Sendiri
Banyak pemula yang ragu pakai systemd karena ngira konfigurasinya rumit. Padahal bikin service di Linux modern itu simpel banget dan jauh lebih melegakan pikiran.
Cukup buat satu file service baru di direktori sistem service, misalnya bot-otomasi.service:
[Unit]
Description=Layanan Bot Otomasi Python
After=network.target
[Service]
Type=simple
User=ubuntu
WorkingDirectory=/home/ubuntu/proyek-bot
ExecStart=/usr/bin/python3 /home/ubuntu/proyek-bot/main.py
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
Kunci keajaibannya ada di baris Restart=always dan RestartSec=5. Kalau aplikasi kamu mendadak error, kehabisan koneksi API, atau kelempar keluar, Linux bakal otomatis nyoba jalanin ulang skrip itu setelah 5 detik. Aman tanpa perlu kita pantau manual tiap jam.
Setelah file disimpan di direktori systemd, aktifkan servisnya dengan tiga perintah standar ini:
sudo systemctl daemon-reload
sudo systemctl enable bot-otomasi
sudo systemctl start bot-otomasi
Cara Mantau Log Tanpa Bikin Harddisk Penuh
Salah satu keuntungan besar pakai systemd adalah manajemen log bawaan lewat journalctl. Kamu gak perlu takut file teks log membengkak sampai bergiga-giga kalau lupa dihapus.
Untuk mantau log yang keluar secara live dari skrip kamu, tinggal jalankan:
journalctl -u bot-otomasi -f
Kesimpulan
Gak ada salahnya pakai nohup kalau cuma mau ngetes skrip jalan selama 10 menit. Tapi kalau kodingan kamu emang diniatkan buat jalan terus sebagai penunjang kerjaan, bot asisten, atau sistem monitoring, luangkan waktu dua menit buat pasang systemd. Tidur malam jadi jauh lebih nyenyak tanpa bayang-bayang bot mati diam-diam.
Kolom Komentar (0)
Silakan tinggalkan tanggapan atau pertanyaan Anda pada formulir di bawah ini.