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

cara menambahkan skrip khusus 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" > /var/tmp/script.out
echo "The script was run at : `date`" >> > /var/tmp/script.out

Skrip harus dapat dieksekusi.

# chmod 0755 /var/tmp/my-custom-script.sh

2. Jelaskan Skrip Kustom Ke systemd

Dengan skrip yang ditulis dan diuji secara manual, skrip siap untuk dideskripsikan ke sistem systemd. Untuk melakukannya, [name].service berkas 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.

Buat file unit layanan baru di /etc/systemd/system/my-custom-script.service dengan konten di bawah ini. Nama unit layanan ditentukan oleh pengguna dan dapat berupa nama pilihan Anda.

# 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 /var/tmp/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)

3. 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 mengkonfigurasi daemon autofs pada CentOS 7/Rhel 7

  2. CentOS / RHEL 7 :Cara Mengubah id mesin

  3. CentOS / RHEL :Cara mengubah UUID sistem file

  1. Cara Mengubah Label sistem file di CentOS/RHEL

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

  3. Cara Menonaktifkan 'lvm2-lvmetad.socket/service' di CentOS/RHEL 7

  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