GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

CentOS / RHEL 7 :So erstellen Sie ein benutzerdefiniertes Skript, das während des Bootens automatisch ausgeführt wird

In RHEL 5 und 6 haben wir die automatische Startfunktion von RHEL über /etc/rc.d/init.d verwendet, um jedes Skript beim Systemstart auszuführen. Beginnend mit RHEL 7 wird init durch systemd ersetzt und die vorherige Methode ist jetzt veraltet. In RHEL 7 gibt es eine andere Möglichkeit, dasselbe zu tun.

Erstellen des benutzerdefinierten Skripts

1. Erstellen wir zunächst ein benutzerdefiniertes Beispielskript, das beim Systemstart automatisch ausgeführt wird.

# vi /var/tmp/test_script.sh
#!/bin/bash
echo "This is a sample script to test auto run during boot" > /var/tmp/script.out
echo "The time the script run was -->  `date`" >> /var/tmp/script.out

2. Überprüfen und verifizieren Sie die Dateiberechtigung.

# ls -lrt /usr/local/sbin/myscript.sh

3. Fügen Sie die Ausführungsberechtigung hinzu (falls noch nicht festgelegt).

# chmod +x /var/tmp/test_script.sh

Neue systemd-Diensteinheit erstellen

Erstellen Sie eine neue Service-Unit-Datei unter /etc/systemd/system/sample.service mit untenstehendem Inhalt. Der Name der Serviceeinheit ist benutzerdefiniert und kann ein beliebiger Name Ihrer Wahl sein.

# vi /etc/systemd/system/sample.service
[Unit]
Description=Description for sample script goes here
After=network.target

[Service]
Type=simple
ExecStart=/var/tmp/test_script.sh
TimeoutStartSec=0

[Install]
WantedBy=default.target

Hier,

After= : If the script needs any other system facilities (networking, etc), modify the [Unit] section to include appropriate After=, Wants=, or Requires= directives.
Type= : Switch Type=simple for Type=idle in the [Service] section to delay execution of the script until all other jobs are dispatched
WantedBy= : target to run the sample script in

Aktivieren Sie die systemd-Diensteinheit

1. Laden Sie den systemd-Prozess neu, um neu erstelltes sample.service ODER jedes Mal zu berücksichtigen, wenn sample.service geändert wird.

# systemctl daemon-reload

2. Aktivieren Sie diesen Dienst so, dass er nach dem Neustart automatisch gestartet wird.

# systemctl enable sample.service

3. Starten Sie den Dienst.

# systemctl start sample.service

4. Starten Sie den Host neu, um zu überprüfen, ob die Skripts während des Systemstarts wie erwartet gestartet werden.

# systemctl reboot


Cent OS
  1. So führen Sie rsyslog als Nicht-Root-Benutzer in CentOS/RHEL 7 aus

  2. So erstellen Sie eine Netzwerkbrücke unter CentOS/RHEL

  3. So erstellen Sie ein Yum-Repository in CentOS/RHEL

  4. So fügen Sie ein benutzerdefiniertes Skript zu systemd in CentOS/RHEL 7 hinzu

  5. So führen Sie ntpdate automatisch aus, wenn Sie NTPD in CentOS/RHEL 5 starten

So starten Sie den Dienst beim Booten mit RHEL 8 / CentOS 8 Linux

So installieren Sie SNMP unter RHEL 8 / CentOS 8

So richten Sie einen Chef 12 unter CentOS 7 / RHEL 7 ein

So installieren Sie den VNC-Server unter CentOS 8 / RHEL 8

So erstellen und führen Sie ein Shell-Skript in CentOS 8 aus

CentOS / RHEL 5:So booten Sie in den Rettungsmodus