A Linuxban jól ismert szolgáltatások minden gond nélkül hozzáadhatók indításkor, mivel a legtöbbjükhöz saját szkript tartozik, ami a ‘chkconfig’ és ‘systemctl’ parancsok segítségével történik.
Az ‘Apache httpd’ szolgáltatás bootoláskor történő hozzáadásához például futtassuk a következő parancsok egyikét a rendszerkezelőnk alapján. Hasonlóképpen hozzáadhat bármilyen jól ismert szolgáltatást, amire szükség van az indításkor.
Sys V init rendszerhez:
# chkconfig --level 35 httpd on
Systemd rendszerhez:
# systemctl enable httpd
Néha szükség lehet egy egyéni szkript vagy parancs vagy szolgáltatás hozzáadására az indításkor/indításkor. Ha igen, hogyan lehet ezt megvalósítani?
Ezzel a cikkel megértjük, hogyan lehet a következő három módszerrel megvalósítani:
- A /etc/rc.d/rc.local fájl
- Crontab fájl használata
- systemd szolgáltatásegység
Módszer-1: Az /etc/rc.d/rc.local fájl használata
A “/etc/rc.d/rc.local” fájl hagyományosan az összes normál számítógépes szolgáltatás elindítása után, a többfelhasználós futtatási szintre való váltás folyamatának végén kerül végrehajtásra.
Ez a módszer a systemd rendszerben is működik, és hozzá kell adni a szkript helyét a “/etc/rc.d/rc.local” fájlhoz, hogy az indításkor fusson.
Győződjön meg róla, hogy a fájlnak futtatási engedélye van.
# chmod +x /etc/rc.d/rc.local
Azért, hogy ezt részletesen megértsük, létrehozunk egy egyszerű szkriptet az alábbiakban látható módon, de szükség szerint bármilyen szkriptet létrehozhat:
# vi /opt/scripts/run-script-on-boot.sh#!/bin/bashdate > /root/on-boot-output.txthostname > /root/on-boot-output.txt
Ha a szkript elkészült, állítsa be a futtatható engedélyt az alábbiakban látható módon:
# chmod +x /opt/scripts/run-script-on-boot.sh
Végül hozzáadjuk a szkriptet a fájl aljához:
# vi /etc/rc.d/rc.local/opt/scripts/run-script-on-boot.sh
Újraindítjuk a rendszert, hogy ezt ellenőrizzük:
# reboot
2. módszer: A crontab fájl használata
A cron automatikusan végrehajtja az ütemezett feladatokat a backendben egy adott időpontban.
Ez könnyen megvalósítható a "@reboot"
nevű speciális karakterlánc használatával a cron munkával.
@reboot egy speciális karakterlánc, és lehetővé teszi a felhasználó számára, hogy bármilyen parancsot vagy szkriptet futtasson az indításkor (boot time).
Ez a példa a ‘/opt/scripts/run-script-on-boot.sh’ fájlt futtatja a rendszer újraindításakor.
A fenti példában létrehozott szkriptet fogjuk használni. Ehhez csak a következő bejegyzést kell hozzáadni a crontab fájlhoz:
# crontab -e@reboot /opt/scripts/run-script-on-boot.sh
Ez ellenőrzéséhez indítsuk újra a rendszert:
# reboot
3. módszer: A systemd szolgáltatásegység használata
Ez a módszer csak a systemd rendszeren működik, és nagyon egyszerű.
Hoz létre kell hoznunk egy systemd indítószkriptet, és a “/etc/systemd/system/” könyvtárba kell helyeznünk.
Ez a mi minta systemd indító egységszkriptünk:
# vi sample-on-boot-script.serviceDescription=Run a Custom Script at StartupAfter=default.targetExecStart=/opt/scripts/run-script-on-boot.shWantedBy=default.target
Mihelyt elhelyezte az egységszkriptet a systemd helyére, futtassa a következő parancsot a systemd konfigurációs fájlok frissítéséhez és a szolgáltatás engedélyezéséhez:
# systemctl daemon-reload# systemctl enable sample-on-boot-script.service
Elindítsa újra a rendszert, hogy ellenőrizze ezt:
# reboot
Bónusz tippek:
Ha a szkriptet a háttérben akarja futtatni, akkor hozzá kell adnia a "&"
jelet az utána lévő nagykötőjelet.
/Path/To/My_Script &
Ha a parancsot más felhasználóként szeretné futtatni, használja a következő formátumot:
su - $USER -c /Path/To/My_Script
Következtetés
Ez a bemutató röviden tárgyalja, hogyan lehet egyéni szkriptet, parancsot vagy szolgáltatást hozzáadni az indításkor.