Cara Membuat Perkhidmatan Systemd di Linux
- 3668
- 518
- Marcus Kassulke
Sistemd adalah suite perisian moden yang menyediakan banyak komponen pada sistem Linux termasuk sistem dan pengurus perkhidmatan. Ia serasi dengan SYSV dan LSB skrip init dan berfungsi sebagai pengganti untuk sysvinit.
Perkhidmatan SystemD ditakrifkan dalam fail unit (unit adalah perwakilan sumber perkhidmatan dan sistem seperti peranti, soket, titik gunung, dll.). Fail unit perkhidmatan tersuai harus disimpan di /etc/Systemd/System/ direktori dan mesti mempunyai .perkhidmatan
sambungan. Contohnya, adat ujian-app penggunaan perkhidmatan /etc/SystemD/System/Test-App.perkhidmatan fail unit.
[Anda mungkin juga suka: Mengapa 'init' perlu diganti dengan 'Systemd' di Linux]
Fail unit adalah fail teks biasa ini yang biasanya merangkumi tiga bahagian biasa. Bahagian pertama biasanya adalah Unit bahagian yang membawa maklumat generik mengenai unit yang tidak bergantung pada jenis unit.
Bahagian seterusnya adalah bahagian jenis unit, untuk perkhidmatan, ia adalah Perkhidmatan seksyen. Dan bahagian akhir adalah Pasang bahagian yang membawa maklumat pemasangan untuk unit tersebut.
Dalam panduan ini, kami akan menunjukkan cara mencipta yang baru sistemd perkhidmatan dan menguruskan perkhidmatan menggunakan arahan SystemCTL, di Linux.
Membuat Fail Perkhidmatan Systemd Custom di Linux
Untuk menjalankan aplikasi atau program atau skrip sebagai perkhidmatan di bawah SystemD, anda boleh membuat perkhidmatan SystemD baru seperti berikut. Mulakan dengan membuat perkhidmatan unit fail bernama ujian-app.perkhidmatan (ingat untuk menggantikan ujian-app dengan nama sebenar perkhidmatan atau permohonan anda), di bawah /etc/Systemd/System/:
# vi/etc/Systemd/System/Test-App.perkhidmatan
Konfigurasi berikut digunakan untuk menentukan perkhidmatan untuk menjalankan a Flask aplikasi menggunakan Gunicorn, pelayan http python wsgi untuk unix.
[Unit] Keterangan = Daemon Gunicorn untuk Melayan Ujian-App selepas = Rangkaian.Sasaran [Service] user = root Group = root workDirectory =/apps/test-app/evervense = "path =/apps/test-app/bin" execstart =/apps/test-app/bin/gunicorn --Workers 9- T 0 -Bind 127.0.0.1: 5001 -m 007 WSGI: App--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] Wanteby = Multi -User.sasaran
Mari kita terangkan secara ringkas setiap arahan konfigurasi dalam konfigurasi di atas:
- Penerangan - digunakan untuk menentukan keterangan untuk perkhidmatan tersebut.
- Selepas - mentakrifkan hubungan dengan unit kedua, rangkaian.sasaran. Dalam kes ini, ujian-app.perkhidmatan diaktifkan selepas rangkaian.sasaran unit.
- Pengguna - digunakan untuk menentukan pengguna dengan keizinannya yang akan dijalankan.
- Kumpulan - digunakan untuk menentukan kumpulan dengan keizinannya yang akan dijalankan.
- Kerjadirectory - digunakan untuk menetapkan direktori kerja untuk proses yang dilaksanakan.
- Persekitaran - digunakan untuk menetapkan pembolehubah persekitaran untuk proses yang dilaksanakan.
- Execstart - digunakan untuk menentukan arahan dengan hujah mereka yang dilaksanakan apabila perkhidmatan ini dimulakan.
- Execreload - digunakan untuk menentukan arahan untuk dilaksanakan untuk mencetuskan tambah nilai konfigurasi dalam perkhidmatan.
- Dikehendaki - membolehkan pautan simbolik dibuat di
.mahukan/
atau.memerlukan/
Direktori setiap unit yang disenaraikan, MULTI-USER.sasaran dalam kes ini, ketika ujian-app.perkhidmatan unit diaktifkan menggunakan SistemCtl Enable Command.
Anda boleh menemui semua parameter konfigurasi unit perkhidmatan, yang diterangkan dengan baik dalam dokumentasi konfigurasi unit perkhidmatan.
Simpan fail unit dan tutupnya. Kemudian tambah semula sistem dengan fail unit perkhidmatan baru ini dengan menjalankan:
# Systemctl Daemon-Reload Command
Ingatlah untuk selalu menjalankan arahan ini setelah mengedit fail unit.
Urus Perkhidmatan Systemd di Linux
Untuk memulakan/mengaktifkan perkhidmatan, jalankan perintah SystemCTL seperti berikut:
# Systemctl Mula Test-App.perkhidmatan
Untuk memeriksa sama ada perkhidmatan berjalan atau tidak, mengeluarkan arahan SystemCtl seperti yang ditunjukkan.
# ujian status systemctl.perkhidmatanPeriksa status perkhidmatan
Untuk membolehkan perkhidmatan bermula di boot sistem, gunakan SistemCtl Enable perintah. Anda boleh menyemak sama ada perkhidmatan telah diaktifkan menggunakan SystemCTL adalah membolehkan Perintah seperti berikut:
# Systemctl Dayakan Test-App.Perkhidmatan # SystemCtl IS-Enabled Test-App.perkhidmatanDayakan Perkhidmatan untuk bermula di Boot
Sebagai alternatif, anda juga boleh mengaktifkan dan memulakan perkhidmatan pada masa yang sama seperti yang ditunjukkan.
# SystemCtl Enable --now Test-App.perkhidmatan
Untuk menghentikan/menyahaktifkan perkhidmatan, jalankan Sistem Sistem STOP Perintah seperti berikut:
# Systemctl Stop Test-App.perkhidmatan
Untuk memulakan semula perkhidmatan, jalankan SYSTEMCTL RESTART Perintah seperti berikut:
# Systemctl Mulakan semula ujian-app.perkhidmatan
Anda juga boleh melumpuhkan perkhidmatan untuk mengelakkannya daripada memulakan boot sistem, menggunakan systemctl melumpuhkan perintah. Anda boleh menyemak sama ada perkhidmatan telah diaktifkan menggunakan SystemCTL adalah membolehkan Perintah seperti berikut:
# Systemctl melumpuhkan ujian-app.Perkhidmatan # SystemCTL IS-Disibabled Test-App.perkhidmatan
Sebagai alternatif, anda boleh melumpuhkan dan menghentikannya pada masa yang sama seperti yang ditunjukkan.
# Systemctl Disable-Now Test-App.perkhidmatan
Untuk maklumat lanjut mengenai menguruskan perkhidmatan sistem dan sumber lain, jalankan:
# Man Systemctl
- « Roket.Sembang - Percuma, sumber terbuka, sembang pasukan perusahaan untuk Linux
- Cara Memasang Firefox pada Sistem RHEL dan Debian »