Menjalankan aplikasi dengan & atau nohup baik-baik saja sampai server reboot, prosesnya crash, atau Anda ingin menemukan lognya — lalu semuanya berantakan. systemd adalah jawaban standar: ia memulai aplikasi Anda saat boot, memulainya ulang jika mati, dan menangkap lognya. Mengubah skrip atau biner menjadi layanan terkelola hanyalah satu berkas kecil.
1. Tulis berkas unit
Buat /etc/systemd/system/myapp.service:
[Unit]
Description=My application
After=network.target
[Service]
User=myapp
WorkingDirectory=/opt/myapp
ExecStart=/usr/bin/python3 /opt/myapp/run.py
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
Sesuaikan ExecStart, WorkingDirectory, dan User dengan aplikasi Anda. Restart=always adalah yang membuatnya tetap hidup.
2. Buat pengguna khusus (disarankan)
sudo useradd --system --no-create-home --shell /usr/sbin/nologin myapp
sudo chown -R myapp:myapp /opt/myapp
Berjalan sebagai pengguna non-root membatasi kerusakan jika aplikasi suatu saat dibobol.
3. Aktifkan dan mulai
sudo systemctl daemon-reload
sudo systemctl enable --now myapp
enable membuatnya mulai saat boot; --now memulainya seketika.
4. Cek status dan log
sudo systemctl status myapp
journalctl -u myapp -f # ikuti log langsung
Perintah sehari-hari
sudo systemctl restart myapp # mulai ulang setelah perubahan
sudo systemctl stop myapp # hentikan
sudo systemctl disable myapp # hentikan mulai saat boot
Peringatan jujur
- Jalankan
daemon-reloadsetelah menyunting berkas unit, kalau tidak systemd memakai versi lama. - Waspadai loop crash. Jika aplikasi gagal seketika,
Restart=alwaysmencoba lagi selamanya —RestartSec=5merenggangkan percobaan; perbaiki kesalahan akar lewat log. - Utamakan
User=non-root agar aplikasi yang dibobol tidak memiliki seluruh server.
Langkah berikutnya
Layanan systemd adalah cara Anda membuat apa pun tetap berjalan 24/7 — misalnya agen AI yang berjalan sepanjang waktu atau relay di balik server RustDesk swa-inang. Jika aplikasi Anda malah dikontainerkan, --restart unless-stopped milik Docker memainkan peran yang sama — lihat cara memasang Docker.
Komentar
Belum ada komentar. Jadilah yang pertama.