Kuinka korjata "A Stop Job is Running" -viesti sammutuksen aikana Linuxissa

Kuinka korjata
Indeksi
  1. Se on turvallisuusominaisuus, ei bugeja
  2. Oletusaikakatteen vähentäminen
  3. Kun aikakatto saattaa viitata ongelmaan
  4. Loppupohdinnat

Modernit Linux-jakelut, kuten Ubuntu ja Fedora, näyttävät "A stop job is running" -viestin sammuttamisen aikana. Tämä on turvallisuusominaisuus, joka voi hidastaa prosessia jopa 90 sekuntia.

Jos käytät modernia Linux-jakelua, olet varmasti törmännyt viestiin "A stop job is running" sammuttamisen yhteydessä. Tämä viesti pysäyttää sammuttamisprosessin jopa 90 sekunniksi. Selvitä, miksi tämä viesti ilmestyy ja miten voit lieventää sitä.

Se on turvallisuusominaisuus, ei bugeja

Ensimmäinen asia, jonka sinun on tiedettävä, on se, että "A stop job is running" -viesti on järjestelmään rakennettu turvallisuusominaisuus, ei bugeja.

Modernit Linux-jakelut, kuten Ubuntu, Fedora ja Arch, käyttävät Systemd:tä hallitsemaan käynnistys- ja sammuttamisprosesseja. Kun napsautat Sammuta, Systemd ei vain vedä virtajohtoa irti. Se lähettää ystävällisen signaalin nimeltä SIGTERM kaikille käynnissä oleville palveluille ja sovelluksille. Useimmat sovellukset tallentavat tietonsa, sulkevat tiedostonsa ja sammuttavat itsensä sujuvasti tämän signaalin vastaanottamisen jälkeen.

Kuitenkin jotkut palvelut tarvitsevat enemmän aikaa tehtäviensä loppuunsaattamiseen ja ignoroivat signaalin. Juuri silloin näet varoitusviestin. Tämä viive tapahtuu yleensä, koska tietyt palvelut, kuten verkonhallintaprosessit, kontit, käyttäjäistunnot tai verkosta liitetyt asemat, tarvitsevat ylimääräistä aikaa sulkeakseen yhteydet tai tallentaakseen tiedot turvallisesti.

Monet Linux-käyttäjät etsivät ratkaisuja, kun he näkevät "A Stop Job is Running" -viestin, olettaen, että jokin on rikki. Totuus on, että Systemd-kehittäjät rakensivat tämän käyttäytymisen tarkoituksella. Periaatteessa se on odotusaika, yleensä 90 sekuntia, jonka Systemd antaa palveluille loppuun saatettavista tehtävistä. Jos palvelu ei saavuta määräaikaa, Systemd katkaisee sen pakolla käyttäen SIGKILL ja jatkaa sammuttamisprosessia.

Tämän sujuvan sammuttamisen myötä monet sovellukset saavat valmiiksi tekemänsä asiat, kuten tiedostojen sulkemisen, tietokantatransaktioiden loppuunsaattamisen ja tiedostojärjestelmien puhdaspoiston. Voit silti poistaa odotuksen ja nopeuttaa sammuttamista, mutta tekemällä niin lisää riskiä menettää äskettäisiä kirjoituksia tai transaktioita, vahingoittaa tietokantoja tai päiväkirjatiedostoja tai jättää liitetyt asemat epävakaaseen tilaan.

Oletusaikakatteen vähentäminen

90 sekunnin oletusaika on monille Linux-käyttäjille tasapaino, erityisesti vanhempaan laitteistoon perustuville, koska se on riittävän pitkä useimmille palveluille siivousrutiiniensa loppuun saattamiseen. Kuitenkin modernin läppärin tai pöytäkoneen käyttäjille 90 sekuntia voi tuntua liialliselta.

Riippumatta syystä, voit säätää järjestelmän kokoonpanotiedostoa ja alentaa aikakattoa kertomalla systemd:lle, että kesken jääneille palveluille annetaan tietty määrä sekunteja tehtäviensä loppuun saattamiseen.

Aloita käynnistämällä pääte ja käytä suosikkitekstieditoriasi muokataksesi järjestelmän kokoonpanotiedostoa:

sudo nano /etc/systemd/system.conf

Seuraavaksi etsi aikakatto-muuttuja. Näet paljon tekstiä, joka edustaa järjestelmäsi globaalit asetukset. Etsi rivi, joka on samanlainen kuin #DefaultTimeoutStopSec=90s. Riviin liitetty #-merkki tarkoittaa, että se on kommentoitu tai poistettu käytöstä. Järjestelmä käyttää parhaillaan sisäistä oletusarvoaan, joka sattuu olemaan 90 sekuntia.

Jotta voit muuttaa arvoa, poista ensin #-merkki aktivoidaksesi rivin ja muutat sitten 90 sekuntia lyhyemmäksi ajaksi mieltymyksesi mukaan.

Varoitus: Älä määritä tätä arvoa 0:ksi. 0:ksi asettaminen luo äärettömän aikakaton, mikä tarkoittaa, että järjestelmä odottaa ikuisesti prosessin pysähtymistä. Se on vastakohta sille, mitä haluamme. Keskikokoarvo (20–30s) on käytännöllinen kompromissi monille käyttäjille.

Kun olet valmis, tallenna ja sulje editori. Muutosten voimaantulemiseksi sinun on yleensä käynnistettävä järjestelmä uudelleen. Koska ongelma ilmenee sammuttamisen aikana, saatat nähdä pitkän odotuksen viimeistä kertaa. Seuraavalla käynnistyksellä uusi sekuntiraja tulee voimaan.

Huomautus: Joissakin tapauksissa saatat joutua myös aktivoimaan #DefaultDeviceTimeoutSec=90s toimiaksesi.

Kun aikakatto saattaa viitata ongelmaan

Useimmissa tapauksissa stop job -aikakatto on normaalia käyttäytymistä. Kuitenkin se voi joskus viitata taustalla olevaan ongelmaan, erityisesti jos sama palvelu viivyttää sammuttamista toistuvasti. Verkon liitos saattaa olla saavuttamattomissa, demonin konfiguraatio voi olla virheellinen tai palvelu ei ehkä reagoi oikein sammuttamissignaaleihin.

Jos huomaat sammuttamisen kestävän minuutteja sen sijaan, että se kestäisi sekunteja, tai sama palvelu aikakatkaisee joka kerta, on hyvä syy tutkia asiaa. Satunnaiset viiveet ovat yleensä harmittomia, mutta johdonmukaiset viiveet viittaavat siihen.

Jotain tarvitsee huomiota.

Jotta voit tunnistaa viivästystä aiheuttavan palvelun, tarkista lokit käynnistämällä järjestelmä uudelleen hitaasta sammutuksesta:

journalctl -b -1 -e

Tämä komento näyttää edellisen käynnistyksen lokit ja siirtyy loppuun. Voit selata ylös etsiäksesi varoituksia, aikakatkaisuviestejä tai palveluja, jotka järjestelmä on pakotettu pysäyttämään.

Lisäksi voit myös tarkentaa etsintääsi tarkastelemalla varoitustasoisia viestejä:

journalctl -b -1 -p warning

Toinen hyödyllinen tarkistus on suorittaa tämä Systemd-analysointikomento:

systemd-analyze blame

Vaikka tämä komento keskittyy käynnistysaikoihin, hitaasti käynnistyvät palvelut käyttäytyvät usein samankaltaisesti sammuttamisen aikana. Joitakin muita yleisiä palveluja, jotka yleensä aiheuttavat pysäytysviestejä, ovat:

  • Verkkopalvelut
  • Kauko-tiedostojärjestelmät, kuten NFS tai SMB
  • Tietokantapalvelimet
  • Kontti- ja virtuaalikoneen hallintatyökalut
  • Ulkoiset levyyt ja automount-yksiköt

Verkkoon perustuvat liitännät ovat erityisen alttiita viivästyksille, jos yhteys on epävakaa tai ei enää käytettävissä. Myös sammuttamisen aikakatkaisun lyhentäminen voi tehdä sammuttamisesta nopeamman tuntuisen, mutta se ei ratkaise taustalla olevaa ongelmaa. Jos jokin palvelu äärimmäisen viivästyttää sammuttamista, juurisyyn käsitteleminen tuo parempia pitkän aikavälin tuloksia.

Loppupohdinnat

Linux antaa sinulle korkean tason hallinnan järjestelmästäsi, mukaan lukien kuinka kauan se odottaa itsepäisten palvelujen sulkemista. Voit myös hallita taustasovelluksia ja poistaa käytöstä tarpeettomia palveluja parantaaksesi sekä sammuttamisen että käynnistymisen aikoja.

Nyt kun olet lukenut Kuinka korjata "A Stop Job is Running" -viesti sammutuksen aikana Linuxissa loppuun, kutsumme sinut tutustumaan lisää Linux-kategoriaan. Löydät sieltä muita mielenkiintoisia artikkeleita, jotka laajentavat tietojasi ja pitävät sinut ajan tasalla. Älä lopeta lukemista ja löytämistä!

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

Go up