Známé služby v Linuxu lze bez problémů přidat při spuštění systému, protože většina z nich má vlastní skript, který se provádí pomocí příkazů ‚chkconfig‘ a ‚systemctl‘.
Příklad pro přidání služby ‚Apache httpd‘ při startu systému spusťte jeden z následujících příkazů podle správce systému. Podobně můžete při startu přidat jakoukoli známou službu podle potřeby.
Pro systém Sys V init:
# chkconfig --level 35 httpd on
Pro systém systemd:
# systemctl enable httpd
Někdy může být potřeba přidat při startu/spouštění vlastní skript nebo příkaz či službu. Pokud ano, jak to udělat?“
V tomto článku si ukážeme, jak to realizovat pomocí následujících tří metod:
- Pomocí /etc/rc.d/rc.local
- Použití souboru crontab
- jednotka služby systemd
Metoda-1: Použití souboru /etc/rc.d/rc.local
Soubor „/etc/rc.local“ se tradičně spouští po spuštění všech běžných služeb počítače na konci procesu přepnutí na víceuživatelskou úroveň běhu.
Tato metoda funguje i v systému systemd a je třeba přidat umístění vašeho skriptu do souboru „/etc/rc.d/rc.local“, který se spustí při startu systému.
Ujistěte se, že soubor má oprávnění ke spuštění.
# chmod +x /etc/rc.d/rc.local
Abychom to pochopili podrobněji, vytvoříme jednoduchý skript, jak je uvedeno níže, ale můžete vytvořit libovolný skript podle potřeby:
# vi /opt/scripts/run-script-on-boot.sh#!/bin/bashdate > /root/on-boot-output.txthostname > /root/on-boot-output.txt
Jakmile je skript připraven, nastavte spustitelné oprávnění, jak je uvedeno níže:
# chmod +x /opt/scripts/run-script-on-boot.sh
Nakonec přidejte skript na konec souboru:
# vi /etc/rc.d/rc.local/opt/scripts/run-script-on-boot.sh
Restartujte systém, abyste to ověřili:
# reboot
Způsob-2: Použití souboru crontab
cron provádí naplánované úlohy automaticky v backendu v určitý čas.
Toho lze snadno dosáhnout pomocí speciálního řetězce "@reboot"
s úlohou cron.
@reboot je speciální řetězec a umožňuje uživateli spustit libovolný příkaz nebo skript při spuštění systému (při startu).
Tento příklad spustí při restartu systému soubor ‚/opt/scripts/run-script-on-boot.sh‘.
Použijeme stejný skript, který byl vytvořen ve výše uvedeném příkladu. K tomu stačí do souboru crontab přidat následující položku:
# crontab -e@reboot /opt/scripts/run-script-on-boot.sh
Pro kontrolu restartujte systém:
# reboot
Metoda-3: Použití jednotky služby systemd
Tato metoda funguje pouze v systému systemd a je velmi jednoduchá.
Pro tento postup je třeba vytvořit spouštěcí skript systemd a umístit jej do adresáře „/etc/systemd/system/“.
Toto je náš vzorový jednotkový skript pro spuštění systemd:
# vi sample-on-boot-script.serviceDescription=Run a Custom Script at StartupAfter=default.targetExecStart=/opt/scripts/run-script-on-boot.shWantedBy=default.target
Po umístění jednotkového skriptu do umístění systemd spusťte následující příkaz pro aktualizaci konfiguračních souborů systemd a povolení služby:
# systemctl daemon-reload# systemctl enable sample-on-boot-script.service
Restartujte systém a zkontrolujte to:
# reboot
Bonusové tipy:
Pokud chcete skript spouštět na pozadí, musíte přidat symbol koncového ampersandu "&"
.
/Path/To/My_Script &
Pokud chcete příkaz spustit jako jiný uživatel, použijte následující formát:
su - $USER -c /Path/To/My_Script
Závěr
Tento návod stručně pojednává o tom, jak přidat vlastní skript nebo příkaz či službu při spuštění.
.