GNU/Linux >> Linux Esercitazione >  >> Cent OS

Come aggiungere uno script personalizzato a systemd in CentOS/RHEL 7

La funzione systemd sostituisce i precedenti script di inizializzazione System-V delle versioni precedenti. systemd è una struttura basata su eventi che consente di avviare, controllare o arrestare in parallelo sottosistemi non dipendenti. Qui spieghiamo come aggiungere uno script personalizzato alla funzione systemd.

1. Scrivi ed esegui il debug dello script personalizzato

Tipicamente uno script systemd viene scritto come uno script di shell. Inizia scrivendo il tuo script personalizzato usando le normali convenzioni. Chiameremo il nostro script my-custom-script.sh ed è semplice:

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

2. Lo script deve essere eseguibile

Rendiamo eseguibile lo script:

# chmod 0755 my-custom-script.sh

3. Descrivi lo script personalizzato su systemd

Con lo script scritto e testato manualmente, lo script è pronto per essere descritto nel sistema systemd. Per fare ciò, è necessario un file [nome].service. La sintassi utilizza il formato INI comunemente utilizzato per i file di configurazione. Continuando il nostro esempio, abbiamo bisogno di un file my-custom-script.service. L'eseguibile verrà eseguito esattamente una volta per ogni avvio del servizio. Il servizio non verrà avviato finché il livello di rete non sarà attivo e stabile:

# 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. Posizionare il file di servizio nella directory di raccolta dei servizi prevista

Mettiamo lo script personalizzato nella directory di raccolta dei servizi, ad esempio /etc/systemd/system/ :

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

5. Abilita lo script per futuri riavvii

Simile al chkconfig delle versioni precedenti, il servizio deve essere abilitato. Poiché è stato aggiunto un nuovo servizio, notifica al demone systemd di riconfigurarsi:

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


Cent OS
  1. come aggiungere uno script personalizzato al systemd in CentOS/RHEL 7

  2. Come aggiungere/rimuovere l'archivio delle impostazioni internazionali in CentOS/RHEL 5,6

  3. CentOS / RHEL:come aggiungere file di scambio

  4. CentOS / RHEL:come aggiungere regole iptable

  5. Come aggiungere le impostazioni internazionali su CentOS/RHEL 8

Come installare Dropbox su RHEL 8 / CentOS 8

Come aggiungere un utente a un gruppo su RHEL 8 / CentOS 8

Come installare la bussola su RHEL 8 / CentOS 8

Come installare Puppet su RHEL 8 / CentOS 8

Come installare/aggiornare Systemd su RHEL/CentOS 7

CentOS / RHEL:come aggiungere una nuova partizione di swap