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