GNU/Linux >> Belajar Linux >  >> Cent OS

Bagaimana cara menambahkan Skrip Kustom ke systemd di CentOS/RHEL 7

Fasilitas systemd menggantikan skrip inisialisasi System-V yang lebih lama dari rilis sebelumnya. Systemd adalah fasilitas yang digerakkan oleh peristiwa yang memungkinkan subsistem yang tidak bergantung untuk dimulai, dikendalikan, atau dihentikan secara paralel. Di sini kami menjelaskan cara menambahkan skrip khusus ke fasilitas systemd.

1. Tulis Dan Debug Skrip Kustom

Biasanya skrip systemd ditulis sebagai skrip shell. Mulailah dengan menulis skrip khusus Anda menggunakan konvensi normal. Kami akan memanggil skrip kami my-custom-script.sh dan langsung saja:

#!/bin/sh
echo I am a custom script

2. Skrip harus dapat dieksekusi

Mari membuat skrip dapat dieksekusi:

# chmod 0755 my-custom-script.sh

3. Jelaskan Script Kustom Ke systemd

Dengan skrip yang ditulis dan diuji secara manual, skrip siap untuk dideskripsikan ke sistem systemd. Untuk melakukan ini, file [name].service diperlukan. Sintaksnya menggunakan format INI yang biasa digunakan untuk file konfigurasi. Melanjutkan contoh kita, kita membutuhkan file my-custom-script.service. Eksekusi akan berjalan tepat sekali untuk setiap kali layanan dimulai. Layanan tidak akan dimulai sampai lapisan jaringan aktif dan stabil:

# This is my-custom-script.service, which describes the my-custom-script.sh file
[Unit]
Description=This is executed on shutdown or reboot
DefaultDependencies=no
Wants=network-pre.target                                                                   # (if network is required before running the script)
Before=network-pre.target shutdown.target reboot.target halt.target                        # Defines the order in which units are stoped. #(REQUIRED)

[Service]
Type=oneshot                                                                               # enables specifying multiple custom commands that are then executed sequentially. (REQUIRED)
RemainAfterExit=true                                                                       # required by the oneshot setting (REQUIRED)
Environment=ONE='one' "TWO='2"                                                             # you can set some environment variables, that may be necessary to pass as arguments
ExecStart=/bin/true                                                                        # because is a shutdown script nothing is done when this service is started
ExecStop=/bin/bash /usr/local/bin/my-custom-script.sh ${ONE} ${TWO}                        # < --*********** change to the script full path ************ (REQUIRED)
TimeoutStopSec=1min 35s                                                                    # Configures the time to wait for stop.

[Install]
WantedBy=multi-user.target                                                                 # When this unit is enabled, the units listed in WantedBy gain a Want dependency on the unit. (REQUIRED)

4. Tempatkan File Layanan Ke Direktori Koleksi Layanan yang Diharapkan

Mari tempatkan skrip khusus di direktori kumpulan layanan yaitu /etc/systemd/system/ :

# cp my-custom-script.sh /etc/systemd/system/

5. Aktifkan Script Untuk Reboot Selanjutnya

Mirip dengan chkconfig dari versi sebelumnya, layanan harus diaktifkan. Karena layanan baru telah ditambahkan, beri tahu daemon systemd untuk mengonfigurasi ulang dirinya sendiri:

# systemctl enable my-custom-script.service
# systemctl daemon-reload


Cent OS
  1. cara menambahkan skrip khusus ke systemd di CentOS/RHEL 7

  2. Cara Menambahkan/Menghapus Arsip Lokal di CentOS/RHEL 5,6

  3. Bagaimana cara menambahkan dukungan bahasa tambahan di CentOS/RHEL

  1. CentOS / RHEL 7 :Cara membuat skrip khusus untuk berjalan secara otomatis saat boot

  2. Cara Debug proses boot systemd di CentOS/RHEL 7 dan 8

  3. CentOS / RHEL :Bagaimana cara menambahkan file swap

  1. Cara menginstal phpMyAdmin di RHEL 8 / CentOS 8

  2. CentOS / RHEL :Bagaimana cara menambahkan aturan iptable

  3. Cara Menambahkan Lokal di CentOS/RHEL 8