Muutama päivä sitten törmäsin a Centos 7 32-bittinen distro ja tunsin halun testata sitä vanhalla 32-bittisellä koneella. Käynnistyksen jälkeen tajusin, että siinä oli vika ja se katkaisi verkkoyhteyden, joka minun oli käännettävä "Ylös" manuaalisesti joka kerta käynnistyksen jälkeen. Joten kysymys oli, kuinka voisin asettaa käsikirjoituksen, joka suorittaa tämän työn, joka toimii joka kerta, kun käynnistän koneeni?
Tämä on hyvin yksinkertaista, ja näytän sinulle järjestelmällisen tavan käyttää palveluyksiköitä. Mutta ensin pieni johdanto palveluyksiköihin.
Tässä artikkelissa aion selittää, mitä a “Palveluyksikkö” Järjestelmässä on kuinka helppoa luoda ja käyttää sitä. Yritän yksinkertaistaa mitä "Tavoitteet" ovat, miksi kutsumme heitä "Yksiköiden kokoelmat" ja mitkä ovat heidän "Haluaa". Lopuksi hyödynnämme palveluyksikköä suorittaaksemme oman komentosarjamme käynnistyksen jälkeen.
On selvää, että tietokoneesi on hyödyllinen sen tarjoamien palveluiden vuoksi, ja tämän toiminnon saamiseksi monia palveluita on kutsuttava tietokoneen käynnistyksen yhteydessä ja ne saavuttavat eri tasot. Muut palvelut kutsutaan suoritettavaksi, kun tietokone saavuttaa esimerkiksi pelastustason (
ajotaso 0) ja muita, kun se saavuttaa monen käyttäjän tason (ajotaso 3). Voit kuvitella nämä tasot tavoitteita.Yksinkertaisesti tavoite on kokoelma palveluyksiköitä. Jos haluat tarkastella käytössäsi olevia palveluyksiköitä graafinen.kohde taso, tyyppi:
# systemctl --type = palvelu.
Kuten huomaat, jotkin palvelut ovat aktiivisia ja "Juokseva" koko ajan, kun taas toiset suorittavat kertaluonteisesti ja päättävät (poistuvat). Jos haluat tarkistaa palvelun tilan, kirjoita:
# systemctl status firewalld.service.
Kuten näet, tarkistin tilan palomuuripalvelu
(kärki: voit käyttää palvelun nimeä automaattisella täydennyksellä). Se ilmoittaa minulle siitä palomuuri palvelu on käynnissä koko ajan ja se on käytössä.
Älä missaa:Palomuuripalvelun määrittäminen CentOS 7: ssä
Käytössä ja pois käytöstä tarkoittaa, että palvelu ladataan pysyvästi tai ei seuraavan käynnistyksen aikana. Toisaalta palvelun aloittamisella ja lopettamisella on nykyisen istunnon rajoitus, eikä se ole pysyvää.
Jos kirjoitat esimerkiksi:
# systemctl stop firewalld.service. # systemctl status firewalld.service.
Voit nähdä, että palomuuripalvelu
ei ole aktiivinen (kuollut), mutta se on edelleen käytössä, mikä tarkoittaa, että seuraavan käynnistyksen aikana se ladataan. Joten jos haluamme palvelun ladattavan käynnistyksen aikana tulevaisuudessa, meidän on otettava se käyttöön. Mikä loistava johtopäätös! Luodaan yksi, se on helppoa.
Jos siirryt kansioon:
# cd/etc/systemd/system. # ls -l.
Näet joitain yksikköpalvelujen linkitiedostoja ja joitakin hakemistoja "Haluaa" kohteesta. Esimerkiksi: mitä monen käyttäjän kohde haluaa ladata, kun käynnistysprosessi saavuttaa tasonsa, näkyy luettelossa nimellä /etc/systemd/system/multi-user.target.wants/.
# ls multi-user.target.wants/
Kuten näette, se ei sisällä vain palvelut mutta myös muita tavoitteita jotka ovat myös palvelukokoelmia.
Tehdään palveluyksikkö nimellä yhteys. palvelu.
# vim -yhteys. palvelu.
ja kirjoita seuraava (osuma "Minä"
lisää tila), tallenna se ja poistu (näppäimellä "poistu"
ja ": Wq!"
) :
[Yksikkö] Kuvaus = verkkoyhteyden muodostaminen. Jälkeen = network.target [Palvelu] ExecStart = /root/scripts/conup.sh [Asenna] WantedBy = usean käyttäjän.target.
Yllä olevan selittämiseksi: olemme luoneet palvelutyypin yksikön (voit luoda myös kohdetyypin yksiköitä), olemme asettaneet sen ladattavaksi network.target (voit ymmärtää, että käynnistysmenettely saavuttaa tavoitteet määrätyllä järjestyksellä) ja haluamme aina, kun palvelu alkaa suorittaa bash-komentosarjan nimeltä conup.sh jonka aiomme luoda.
Hauska alkaa viimeisestä osasta [Asentaa]. Se kertoo, että se halutaan "Multi-user.target". Joten jos otamme palvelumme käyttöön, palveluun luodaan symbolinen linkki palveluun multi-user.target.wants kansio! Sain sen? Ja jos poistamme sen käytöstä, linkki poistetaan. Niin yksinkertaista.
Ota vain käyttöön ja tarkista:
# systemctl ota yhteys käyttöön. palvelu.
se ilmoittaa meille, että symbolinen linkki multi-user.target.wants kansio on luotu. Tarkista se:
# ls multi-user.target.wants/
Kuten näet "Yhteys. Palvelu" on valmis seuraavaan käynnistykseen, mutta meidän on ensin luotava komentotiedosto.
# cd /root. # mkdir -skriptejä. # cd -skriptejä. # vim conup.sh.
Lisää seuraava rivi sisälle vim ja tallenna se:
#!/bin/bash. nmcli -yhteys enp0s3.
Tietenkin, jos haluat, että komentosarjasi suorittaa jotain muuta, voit kirjoittaa mitä haluat toisen rivin sijasta.
Esimerkiksi,
#!/bin/bash. kosketa /tmp /testbootfile.
joka luo tiedoston sisälle /tmp kansioon (vain tarkistaaksesi, että palvelu toimii).
Meidän on myös tehtävä skripti suoritettavaksi:
# chmod +x conup.sh.
Nyt olemme valmiita. Jos et halua odottaa seuraavaan käynnistykseen (se on jo käytössä), voimme käynnistää palvelun nykyiselle istunnon kirjoittamiselle:
# systemctl käynnistä yhteys. palvelu.
Voila! Yhteyteni on kunnossa!
Jos olet päättänyt kirjoittaa komennon "Touch /tmp /testbootfile" käsikirjoituksen sisällä, vain tarkistaaksesi sen toimivuuden, näet tämän tiedoston, joka on luotu sisälle /tmp kansio.
Toivon todella, että voin auttaa sinua selvittämään, mitä palveluja, toiveita, tavoitteita ja komentosarjojen käynnistämistä käynnistyksen aikana on.