Tutorial ini menjelaskan cara menjalankan project Python dengan gunicorn sebagai aplikasi service dan systemd agar otomatis aktif saat server restart.
Daftar Isi#
- 1. Persiapan project
- 2. Instal dependensi
- 3. Buat service systemd
- 4. Aktifkan service
- 5. Verifikasi dan debugging
1. Persiapan project#
Pastikan project Python Anda sudah siap dijalankan, misalnya memakai virtual environment dan memiliki file utama aplikasi.
Contoh struktur project:
/home/aska/pickupSession/
├── venv/
├── app.py
└── start.shJika Anda memakai Flask, FastAPI, atau framework lain, sesuaikan module dan command gunicorn dengan aplikasi Anda.
2. Instal dependensi#
Aktifkan virtual environment lalu instal gunicorn dan dependency project.
cd /home/aska/pickupSession
source venv/bin/activate
pip install gunicorn
pip install -r requirements.txtJika Anda belum punya requirements.txt, pastikan minimal gunicorn dan framework Python yang dipakai sudah terpasang.
3. Buat service systemd#
Buat file unit service di /etc/systemd/system/.
sudo nano /etc/systemd/system/pickupsession.serviceLalu isi dengan konfigurasi berikut.
[Unit]
Description=PickupSession Python Gunicorn Service
After=network.target
[Service]
User=aska
Group=aska
WorkingDirectory=/home/aska/pickupSession
Environment="PATH=/home/aska/pickupSession/venv/bin"
ExecStart=/home/aska/pickupSession/venv/bin/gunicorn --workers 3 --bind 0.0.0.0:8000 app:app
Restart=always
RestartSec=5
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.targetSesuaikan beberapa bagian berikut jika perlu:
UserdanGroupsesuai user Linux yang menjalankan project.WorkingDirectorysesuai lokasi project Anda.ExecStartsesuai module Flask/FastAPI Anda.- Port
8000bisa diganti sesuai kebutuhan.
4. Aktifkan service#
Setelah file service dibuat, reload konfigurasi systemd lalu aktifkan service.
sudo systemctl daemon-reload
sudo systemctl enable pickupsession.service
sudo systemctl start pickupsession.service5. Verifikasi dan debugging#
Periksa status service untuk memastikan aplikasi berjalan normal.
sudo systemctl status pickupsession.serviceUntuk melihat log aplikasi secara realtime, gunakan:
sudo journalctl -u pickupsession.service -fDengan cara ini, project Python Anda akan berjalan sebagai service dan otomatis aktif kembali setelah server restart.

