Sådan kører du et script efter alle systemtjenester er indlæst med systemd

Hvordan kan man sikre, at et script kører efter alle systemtjenester er indlæst med systemd, nu hvor /etc/rc.local ikke længere er tilgængelig? Skal man bruge Before og After i systemd service-filen?

For at sikre, at et script kører efter alle systemtjenester er indlæst med systemd, skal du oprette en systemd service-fil og bruge "After" direktivet til at definere rækkefølgen af tjenestestart.

Hvordan kan man sikre, at et script kører efter alle systemtjenester er indlæst med systemd, nu hvor /etc/rc.local ikke længere er tilgængelig? Skal man bruge Before og After i systemd service-filen?

For at sikre, at et script kører efter alle systemtjenester er indlæst med systemd, kan du oprette en systemd service-fil. Her er en trin-for-trin guide til, hvordan du gør det:

  1. Opret en ny service-fil:

    Opret en ny fil i /etc/systemd/system/ med en passende navn, f.eks. my_script.service.

  2. Rediger service-filen:

    Åbn filen og tilføj følgende indhold:

        [Unit]
        Description=Run my script after all system services are loaded
        After=network.target
    
        [Service]
        Type=oneshot
        ExecStart=/path/to/your/script.sh
    
        [Install]
        WantedBy=multi-user.target
        

    Her er en forklaring på de vigtigste direktiver:

    • After=network.target: Dette sikrer, at scriptet kører efter netværkstjenesterne er startet. Du kan tilføje flere afhængigheder, hvis nødvendigt.
    • ExecStart=/path/to/your/script.sh: Angiv stien til dit script.
    • WantedBy=multi-user.target: Dette sikrer, at tjenesten aktiveres i multi-user runlevel.
  3. Aktiver og start tjenesten:

    Kør følgende kommandoer for at aktivere og starte tjenesten:

        sudo systemctl enable my_script.service
        sudo systemctl start my_script.service
        

Ved at følge disse trin sikrer du, at dit script kører efter alle systemtjenester er indlæst. Brug af After direktivet i systemd service-filen er afgørende for at definere rækkefølgen af tjenestestart.