Poniższy config omówi podstawowy przykład, jak wykonać skrypt powłoki podczas uruchamiania systemu systemd Linux. Mogą istnieć różne powody, dla których możesz chcieć wykonać skrypt powłoki podczas uruchamiania Linuksa jak na przykład uruchomić określoną usługę, sprawdzić miejsce na dysku, stworzyć kopię zapasową itp.
Poniższy przykład będzie służył jako podstawowy szablon do późniejszej modyfikacji do twoich specyficznych potrzeb. W poniższym przykładzie sprawdzimy przestrzeń dyskową katalogu /home/
podczas startu systemu i zapiszemy raport do katalogu /root/
.
Systemd service unit
Po pierwsze, musimy stworzyć skrypt startowy systemd np.disk-space-check.service
i umieścić go w katalogu /etc/systemd/system/
. Przykład takiego skryptu startowego systemd możesz znaleźć poniżej:
After=mysql.serviceExecStart=/usr/local/bin/disk-space-check.shWantedBy=default.target
- After: Instruuje systemd, kiedy skrypt powinien zostać uruchomiony. W naszym przypadku skrypt zostanie uruchomiony po uruchomieniu bazy danych mysql. Innym przykładem może być
network.target
etc. - ExecStart: W tym polu podajemy pełną ścieżkę, którą ma być wykonany rzeczywisty skrypt
- WantedBy: Into what boot target the systemd unit should be installed
Powyższe to absolutne minimum jakie powinna zawierać nasza jednostka usługi systemd, aby wykonać nasz skrypt w czasie bootowania. Aby uzyskać więcej informacji i opcji do użycia zobacz systemd.service
stronę podręcznika:
$ man systemd.service
Skrypt powłoki startowej
Następnie tworzymy nasz niestandardowy skrypt powłoki, który będzie wykonywany podczas startu systemu systemd. Lokalizacja i nazwa skryptu jest już zdefiniowana przez jednostkę usługi jako /usr/local/bin/disk-space-check.sh
. Zawartość skryptu może być prosta jak:
#!/bin/bashdate > /root/disk_space_report.txtdu -sh /home/ >> /root/disk_space_report.txt
Instytut Geofizyczny UAF, poszukuje doświadczonego Analityka Systemów Linuksowych, który dołączy do zespołu analityków i inżynierów zajmujących się cyberinfrastrukturą badawczą. LOKALIZACJA: Fairbanks, Alaska, USA
APPLY NOW
Konfiguracja i instalacja
Zanim zrestartujemy nasz system, musimy uczynić nasz skrypt wykonywalnym:
# chmod 744 /usr/local/bin/disk-space-check.sh
Następnie zainstaluj jednostkę usługi systemd i włącz ją, aby była wykonywana w czasie uruchamiania systemu:
# chmod 664 /etc/systemd/system/disk-space-check.service# systemctl daemon-reload# systemctl enable disk-space-check.serviceCreated symlink from /etc/systemd/system/default.target.wants/disk-space-check.service to /etc/systemd/system/disk-space-check.service.
Jeśli chcesz przetestować swój skrypt przed restartem uruchom go:
# systemctl start disk-space-check.service# cat /root/disk_space_report.txt Thursday 7 July 11:30:25 AEST 20161.5G /home/
Wszystko gotowe. Po ponownym uruchomieniu systemu Linux, powyższa jednostka systemd wywoła skrypt powłoki, który zostanie wykonany podczas startu systemu.