Cara Membuat dan Menjalankan Unit Perkhidmatan Baru di Systemd Menggunakan Skrip Shell

Cara Membuat dan Menjalankan Unit Perkhidmatan Baru di Systemd Menggunakan Skrip Shell

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 = Service 
Senaraikan 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.perkhidmatan 
Semak 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.perkhidmatan 
Menguruskan 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 -l 
Fail 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.sasaran 
Buat 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 perkhidmatan

Saya sangat berharap dapat membantu anda mengetahui apa perkhidmatan, mahu, sasaran dan skrip berjalan semasa boot adalah.