Cara Membuat Layanan SystemD di Linux
- 4141
- 858
- Dr. Travis Bahringer
Systemd adalah rangkaian perangkat lunak modern yang menyediakan banyak komponen pada sistem Linux termasuk sistem dan manajer layanan. Itu kompatibel dengan Sysv Dan LSB init skrip dan berfungsi sebagai pengganti untuk Sysvinit.
Layanan SystemD didefinisikan dalam file unit (unit adalah representasi dari layanan dan sumber daya sistem seperti perangkat, soket, titik pemasangan, dll.). File unit layanan khusus harus disimpan di /etc/systemd/system/ direktori dan harus memiliki .melayani
perpanjangan. Misalnya, kebiasaan Test-App Penggunaan Layanan /etc/systemd/system/test-app.melayani file unit.
[Anda mungkin juga suka: mengapa 'init' perlu diganti dengan 'systemd' di linux]
File unit adalah file bergaya ini teks biasa yang biasanya mencakup tiga bagian umum. Bagian pertama biasanya Satuan Bagian yang membawa informasi umum tentang unit yang tidak tergantung pada jenis unit.
Bagian selanjutnya adalah bagian tipe unit, untuk suatu layanan, itu adalah a Melayani bagian. Dan bagian terakhir adalah Install bagian yang membawa informasi instalasi untuk unit.
Dalam panduan ini, kami akan menunjukkan cara membuat yang baru Systemd Layanan dan Kelola Layanan Menggunakan Perintah SystemCTL, di Linux.
Membuat File Layanan Sistem Kustom di Linux
Untuk menjalankan aplikasi atau program atau skrip sebagai layanan di bawah SystemD, Anda dapat membuat layanan SystemD baru sebagai berikut. Mulailah dengan membuat layanan satuan file bernama Test-App.melayani (Ingatlah untuk mengganti Test-App dengan nama sebenarnya dari layanan atau aplikasi Anda), di bawah /etc/systemd/system/:
# vi/etc/systemd/system/test-app.melayani
Konfigurasi berikut digunakan untuk menentukan layanan untuk menjalankan a Labu aplikasi menggunakan Gunicorn, Server HTTP Python WSGI untuk UNIX.
[Unit] Deskripsi = Daemon Gunicorn untuk Melayani Test-App Setelah = Jaringan.Target [Layanan] user = root grup = root workingDirectory =/apps/test-app/lingkungan = "path =/apps/test-app/bin" execStart =/apps/test-app/bin/gunicorn-pekerja 9- T 0 -BIND 127.0.0.1: 5001 -m 007 WSGI: Aplikasi-Log-Level Debug-ACCESS-LOGFILE/VAR/LOG/GUNICORN/TEST_APP_ACCESS.log --error-logfile/var/log/gunicorn/test_app_error.log execreload =/bin/kill -s hup $ mainpid restartsec = 5 [install] wantedby = multi -pengguna.target
Mari kita jelaskan secara singkat setiap arahan konfigurasi dalam konfigurasi di atas:
- Keterangan - digunakan untuk menentukan deskripsi untuk layanan.
- Setelah - mendefinisikan hubungan dengan unit kedua, jaringan.target. Dalam hal ini, Test-App.melayani diaktifkan setelah jaringan.target satuan.
- Pengguna - digunakan untuk menentukan pengguna dengan izin yang akan dijalankan layanan.
- Kelompok - digunakan untuk menentukan grup dengan izin yang akan dijalankan layanan.
- WorkingDirectory - digunakan untuk mengatur direktori kerja untuk proses yang dieksekusi.
- Lingkungan - digunakan untuk mengatur variabel lingkungan untuk proses yang dieksekusi.
- EXECSTART - digunakan untuk mendefinisikan perintah dengan argumen mereka yang dieksekusi saat layanan ini dimulai.
- Execreload - digunakan untuk mendefinisikan perintah untuk mengeksekusi agar memicu muat ulang konfigurasi di layanan.
- Dicari - memungkinkan tautan simbolik dibuat di
.keinginan/
atau.memerlukan/
Direktori masing -masing unit yang terdaftar, multi-pengguna.target dalam hal ini, saat Test-App.melayani Unit diaktifkan menggunakan Systemctl mengaktifkan perintah.
Anda dapat menemukan semua parameter konfigurasi unit layanan, dijelaskan dengan baik dalam dokumentasi konfigurasi unit layanan.
Simpan file unit dan tutup. Kemudian muat ulang SystemD dengan file unit layanan baru ini dengan menjalankan:
Perintah # Systemctl Daemon-Reload
Ingatlah untuk selalu menjalankan perintah ini setelah mengedit file unit.
Kelola Layanan SystemD di Linux
Untuk memulai/mengaktifkan layanan, jalankan perintah SystemCTL sebagai berikut:
# Systemctl Mulai Tes-App.melayani
Untuk memeriksa apakah layanan berjalan atau tidak, keluarkan perintah SystemCTL seperti yang ditunjukkan.
# Systemctl Status Test-App.melayaniPeriksa status layanan
Untuk mengaktifkan layanan untuk memulai dari boot sistem, gunakan Systemctl Enable memerintah. Anda dapat memeriksa apakah layanan telah diaktifkan menggunakan Systemctl IS-Enable Perintah sebagai berikut:
# SystemCTL Mengaktifkan Test-App.Layanan # Systemctl IS-Enabled Test-App.melayaniAktifkan layanan untuk memulai dari boot
Atau, Anda juga dapat mengaktifkan dan memulai layanan pada saat yang sama seperti yang ditunjukkan.
# Systemctl Enable--Now Test-App.melayani
Untuk menghentikan/menonaktifkan layanan, jalankan Systemctl berhenti Perintah sebagai berikut:
# Systemctl Stop Test-App.melayani
Untuk memulai ulang layanan, jalankan restart systemctl Perintah sebagai berikut:
# Systemctl Restart Test-App.melayani
Anda juga dapat menonaktifkan layanan untuk mencegahnya mulai dari boot sistem, menggunakan Systemctl nonaktifkan memerintah. Anda dapat memeriksa apakah layanan telah diaktifkan menggunakan Systemctl IS-Enable Perintah sebagai berikut:
# Systemctl Nonaktifkan Test-App.Layanan # Systemctl IS-Disabled Test-App.melayani
Atau, Anda dapat menonaktifkan dan menghentikannya pada saat yang sama seperti yang ditunjukkan.
# Systemctl Disable--Now Test-App.melayani
Untuk detail lebih lanjut tentang mengelola layanan SystemD dan sumber daya lainnya, jalankan:
# Man Systemctl
- « Roket.Obrolan - Obrolan Gratis, Sumber Terbuka, Perusahaan untuk Linux
- Cara menginstal firefox di sistem rhel dan debian »