GNU/Linux >> Znalost Linux >  >> Cent OS

CentOS / RHEL 7 :Jak vytvořit vlastní skript, který se automaticky spustí během bootování

V RHEL 5 a 6 jsme používali funkci automatického spouštění RHEL prostřednictvím /etc/rc.d/init.d ke spuštění libovolného skriptu při spouštění systému. Počínaje RHEL 7 je init nahrazen systemd a předchozí metoda je nyní zastaralá. V RHEL 7 existuje další způsob, jak udělat totéž.

Vytvoření vlastního skriptu

1. Nejprve vytvořte vzorový vlastní skript, který se automaticky spustí při spouštění systému.

# 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. Zkontrolujte a ověřte oprávnění k souboru.

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

3. Přidejte oprávnění ke spuštění (pokud již není nastaveno).

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

Vytvoření nové servisní jednotky systemd

Vytvořte nový soubor servisní jednotky na /etc/systemd/system/sample.service s níže uvedeným obsahem. Název servisní jednotky je definován uživatelem a může to být libovolný název podle vašeho výběru.

# 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

Tady,

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

Povolte servisní jednotku systemd

1. Znovu načtěte proces systemd, abyste zvážili nově vytvořený soubor sample.service NEBO pokaždé, když dojde k úpravě sample.service.

# systemctl daemon-reload

2. Povolte automatické spuštění této služby po restartu.

# systemctl enable sample.service

3. Spusťte službu.

# systemctl start sample.service

4. Restartujte hostitele a ověřte, zda se skripty spouštějí během spouštění systému podle očekávání.

# systemctl reboot


Cent OS
  1. Jak vytvořit síťový most na CentOS 7 / RHEL 7

  2. jak přidat vlastní skript do systemd v CentOS/RHEL 7

  3. Jak zakázat službu avahi-daemon v CentOS/RHEL

  1. Jak vytvořit úložiště yum v CentOS/RHEL

  2. Jak přidat vlastní skript do systemd v CentOS/RHEL 7

  3. Jak automaticky spustit ntpdate při spouštění NTPD v CentOS/RHEL 5

  1. Jak spustit rsyslog jako uživatel bez root v CentOS/RHEL 7

  2. Jak vytvořit síťový most pod CentOS/RHEL

  3. Jak vytvořit banner SSH na serveru CentOS/RHEL