Kadang-kadang Anda membuat skrip dan kemudian Anda ingin skrip tersebut dikendalikan oleh systemd atau dalam beberapa kasus Anda ingin skrip dimulai ulang dengan sendirinya ketika dimatikan karena beberapa alasan.
Sistem di Linux membantu mengonfigurasi layanan yang dapat dikelola.
Dalam artikel ini, Kami akan menunjukkan cara membuat layanan systemd.
Buat layanan systemd
Secara umum
Cukup ikuti langkah-langkah di bawah ini:
- Anda dapat menemukan menjalankan layanan linux di bawah jalur /etc/systemd/system
cd /etc/systemd/system
- Buat file bernama [servicename.service] dan tambahkan yang berikut
[Unit]
Description=<description_about_your_service>
[Service]
User=<user_such_as_root>
WorkingDirectory=<directory_of__your_script such as /home/unixcop>
ExecStart=<script_which_needs_to_be_executed>
Restart=always
[Install]
WantedBy=multi-user.target
CATATAN :Ganti Bold nilai di atas dengan nilai layanan baru yang ingin Anda buat.
Unit layanan adalah file dengan .service sufiks berisi informasi tentang proses yang dikelola oleh systemd . Ini terdiri dari tiga bagian utama:
- [Satuan] :bagian ini berisi informasi yang tidak secara khusus terkait dengan jenis unit, seperti deskripsi layanan
- [Layanan] :berisi informasi tentang jenis unit tertentu, layanan dalam hal ini
- [Pasang] :Bagian ini berisi informasi tentang pemasangan unit
Untuk proyek khusus Python yang menyertakan lingkungan virtual
- Ikuti langkah yang sama di atas tetapi tambahkan yang berikut
[Unit]
Description=<description_about_your_project>
[Service]
User=<user_such_as_root>
WorkingDirectory=<path/to/your/project/directory/containing/the/python/script>
ExecStart=Path of virtualenv and your script file name
#Example for ExecStart=/home/user/.virtualenv/bin/python main.py
#replace /home/user/.virtualenv/bin/python with your virtualenv and main.py with your script name
Restart=always
[Install]
WantedBy=multi-user.target
ATAU
[Unit]
Description=<description_about_your_project>
[Service]
User=<user_such_as_root>
WorkingDirectory=<path to your project directory>
ExecStart=/bin/bash -c 'cd /home/unixcop/project/ && source venv/bin/activate && python test.py'
#replace /home/unixcop/project/ with your Path, venv/bin/activate with your source and test.py with your script name
[Install]
WantedBy=multi-user.target
- Setelah Anda selesai memuat ulang file layanan untuk menyertakan layanan baru.
sudo systemctl daemon-reload
- Mulai layanan baru Anda
sudo systemctl start [your_new_service].service
- Periksa status layanan baru Anda, mis. (layanan baru saya bernama unixcop.service)
sudo systemctl status unixcop.service
- Aktifkan layanan Anda di setiap reboot
sudo systemctl enable unixcop.service
- Untuk menonaktifkan layanan Anda setiap kali reboot
sudo systemctl disable unixcop.service
Kesimpulan
Itu dia
Kami mengilustrasikan cara membuat layanan systemd baru di Linux
Terima kasih!!