Cara Membuat dan Menjalankan Unit Perkhidmatan Baru di Systemd Menggunakan Skrip Shell
- 1907
- 377
- Clay Weber
Beberapa hari yang lalu, saya menjumpai a Centos 7 32-bit distro dan saya merasakan keinginan untuk mengujinya di mesin 32-bit lama. Selepas boot saya menyedari bahawa ia mempunyai bug dan ia kehilangan sambungan rangkaian, yang saya terpaksa menghidupkannya "Up" secara manual setiap kali selepas boot. Jadi, persoalannya ialah bagaimana saya boleh menetapkan skrip melakukan tugas ini, berjalan setiap kali saya boot mesin saya?
Nah, ini sangat mudah dan saya akan menunjukkan kepada anda sistem yang menggunakan unit perkhidmatan. Tetapi pertama pengenalan kecil kepada unit perkhidmatan.
Dalam artikel ini, saya akan menerangkan apa a "Unit Perkhidmatan" dalam sistemd adalah, betapa mudahnya membuat dan menjalankannya. Saya akan berusaha mempermudahkan apa "Sasaran" adalah, mengapa kita memanggil mereka "Koleksi unit" Dan apa itu mereka "Mahu". Akhirnya kami memanfaatkan unit perkhidmatan untuk menjalankan skrip kami sendiri selepas prosedur boot.
Sudah jelas bahawa komputer anda berguna kerana perkhidmatan yang ditawarkan dan untuk mempunyai fungsi ini, banyak perkhidmatan harus dipanggil sebagai kasut komputer dan mencapai tahap yang berbeza. Perkhidmatan lain dipanggil untuk dilaksanakan apabila komputer mencapai contoh tahap penyelamatan (Runlevel 0) dan lain-lain ketika mencapai tahap multi-pengguna (Runlevel 3). Anda boleh membayangkan tahap ini sebagai sasaran.
Dengan cara yang mudah sasaran adalah koleksi unit perkhidmatan. Sekiranya anda ingin melihat unit perkhidmatan yang berjalan di anda grafik.sasaran tahap, jenis:
# Systemctl --Type = ServiceSenaraikan semua unit perkhidmatan di CentOS 7
Seperti yang anda dapat lihat beberapa perkhidmatan aktif dan "Berlari" sepanjang masa, sementara yang lain berjalan satu kali dan menamatkan (keluar). Sekiranya anda ingin menyemak status perkhidmatan, taipkan:
# Firewalld Status Systemctl.perkhidmatanSemak status perkhidmatan di CentOS 7
Seperti yang anda lihat, saya memeriksa status Firewalld.perkhidmatan
(Petua: anda boleh menggunakan auto-lengkap untuk nama perkhidmatan). Ia memberitahu saya bahawa Firewalld perkhidmatan berjalan sepanjang masa dan ia diaktifkan.
Jangan ketinggalan: Cara Mengkonfigurasi Perkhidmatan Firewalld di CentOS 7
Didayakan dan dilumpuhkan bermaksud perkhidmatan akan dimuat secara kekal atau tidak, semasa boot seterusnya. Sebaliknya untuk memulakan dan menghentikan perkhidmatan mempunyai batasan sesi sekarang dan tidak kekal.
Sebagai contoh, jika anda menaip:
# Systemctl Stop Firewalld.Perkhidmatan # Sistem Firewalld Status.perkhidmatanMenguruskan Perkhidmatan di CentOS 7
Anda dapat melihat bahawa Firewalld.perkhidmatan
tidak aktif (mati) tetapi masih didayakan, yang bermaksud bahawa pada boot seterusnya ia akan dimuatkan. Oleh itu, jika kita mahu perkhidmatan dimuatkan semasa masa boot pada masa akan datang, kita mesti mengaktifkannya. Kesimpulan yang hebat! Mari buat satu, mudah.
Sekiranya anda pergi ke folder:
# CD/etc/SystemD/System # ls -lFail sistem sistem
Anda dapat melihat beberapa fail pautan perkhidmatan unit dan beberapa direktori "Mahu" sasaran. Contohnya: Apa sasaran multi-pengguna yang ingin dimuatkan apabila prosedur boot mencapai tahapnya, disenaraikan dalam direktori dengan nama /etc/Systemd/System/Multi-User.sasaran.mahukan/.
# ls multi-user.sasaran.mahukan/Perkhidmatan Sasaran Pelbagai Pengguna
Seperti yang anda lihat tidak mengandungi sahaja perkhidmatan tetapi juga yang lain sasaran yang juga koleksi perkhidmatan.
Mari buat unit perkhidmatan dengan namanya sambungan.perkhidmatan.
# sambungan vim.perkhidmatan
dan taipkan yang berikut (hit "Saya"
untuk mod sisipan), simpan dan keluar (dengan "ESC"
dan ": Wq!"
):
[Unit] Keterangan = Membuat Sambungan Rangkaian selepas = Rangkaian.sasaran [perkhidmatan] execstart =/root/scripts/conup.SH [Pasang] Wanteby = Multi-User.sasaranBuat unit perkhidmatan baru di CentOS 7
Untuk menerangkan perkara di atas: kami telah membuat unit jenis perkhidmatan (anda juga boleh membuat unit jenis sasaran), kami telah menetapkannya untuk dimuatkan selepas rangkaian.sasaran (Anda dapat memahami bahawa prosedur boot mencapai sasaran dengan pesanan yang ditetapkan) dan kami mahu setiap masa perkhidmatan mula melaksanakan skrip bash dengan nama conup.sh yang akan kita buat.
Keseronokan bermula dengan bahagian terakhir [Pasang]. Ia mengatakan bahawa ia akan dikehendaki oleh "Multi-user.Sasaran ". Oleh itu, jika kami membolehkan perkhidmatan kami pautan simbolik ke perkhidmatan itu akan dibuat di dalam MULTI-USER.sasaran.mahu folder! Mendapatnya? Dan jika kita melumpuhkannya bahawa pautan akan dipadamkan. Sangat mudah.
Hanya aktifkan dan periksa:
# Systemctl Membolehkan sambungan.perkhidmatan
ia memberitahu kita bahawa pautan simbolik di MULTI-USER.sasaran.mahu Folder telah dibuat. Periksa:
# ls multi-user.sasaran.mahukan/Dayakan Perkhidmatan di CentOS 7
Seperti yang anda lihat "Sambungan.Perkhidmatan " bersedia untuk boot seterusnya, tetapi kita mesti membuat fail skrip terlebih dahulu.
# CD /Root # Mkdir Scripts # CD Script # Vim Conup.sh
Tambahkan baris berikut di dalam vim dan simpan:
#!/Bin/Bash NMCLI Sambungan UP ENP0S3
Sudah tentu jika anda mahu skrip anda melaksanakan sesuatu yang lain, anda boleh menaip apa sahaja yang anda mahukan dan bukannya baris kedua.
Sebagai contoh,
#!/bin/sentuhan bash/tmp/testbootfile
yang akan membuat fail di dalam /TMP Folder (hanya untuk memeriksa bahawa perkhidmatan anda berfungsi).
Kita juga mesti membuat skrip boleh dilaksanakan:
# chmod +x conup.sh
Sekarang kita sudah bersedia. Sekiranya anda tidak mahu menunggu sehingga boot seterusnya (sudah diaktifkan), kami boleh memulakan perkhidmatan untuk menaip sesi semasa:
# Sistem Connection Mula.perkhidmatan
Voila! Sambungan saya berjalan dan berjalan!
Sekiranya anda memilih untuk menulis arahan "Sentuh /tmp /testbootfile" Di dalam skrip, hanya untuk memeriksa fungsinya, anda akan melihat fail ini dibuat di dalamnya /TMP folder.
Sahkan status perkhidmatanSaya sangat berharap dapat membantu anda mengetahui apa perkhidmatan, mahu, sasaran dan skrip berjalan semasa boot adalah.
- « Cara Memasang Elasticsearch, Logstash, dan Kibana (Elk Stack) di CentOS/RHEL 7
- Kekuatan Perintah Sejarah Linux di Bash Shell »