Python OS Exit

Python Os Exit



Pythonin käyttöjärjestelmämoduuli tarjoaa erilaisia ​​työkaluja tiedonsiirtoon käyttöjärjestelmän kanssa. Tämä moduuli tarjoaa modulaarisen tavan käyttää ominaisuutta käyttöjärjestelmästä riippuen. Python-ohjelmointikielessä käytetään erilaisia ​​menetelmiä, ja 'Python os exit' on yksi niistä. Tämän toiminnon avulla Python-prosessi voidaan lopettaa tietyssä tilassa ilman puhdistuskäsittelijöiden suorittamista tai puskureiden huuhtelua, esimerkkinä 'os fork()'-järjestelmäkutsulla, jossa tätä toimintoa käytetään tyypillisesti aliprosessissa.

Tietokonetoiminto voi lopettaa suorituksensa käynnistämällä poistumisjärjestelmän kutsun monissa tietokoneiden käyttöjärjestelmissä. Monisäikeisessä järjestelmässä poistuminen symboloi usein toimivan säikeen katkeamista. Käyttöjärjestelmä hakee resurssit, jotka sisältävät tiedostoja ja muistia resurssien hallintaa varten. Mutta jos puhumme tavallisesta poistumisesta, se olisi todennäköisesti 'sys.exit(n)' -menetelmä.







Syntaksi

Python OS -poistumismenetelmän syntaksi on annettu alla:




Python-käyttöjärjestelmän poistumismenetelmän syntaksi määrittää kaksi asiaa: ensimmäinen osa edustaa prosessin poistumistilaa, eikä tämä moduuli palauta mitään arvoa.



Esimerkki # 1: 'os._exit()'-menetelmän käyttäminen useista prosesseista poistumiseen kutsumatta mitään puhdistuskäsittelijää

Poistumistapaa voidaan käyttää missä tahansa käyttöjärjestelmässä, ensisijaisesti 'Windows'- tai 'Linux'-käyttöjärjestelmissä. Ensimmäisessä esimerkissämme tarkastellaan useita prosesseja, jotka esiintyvät pääprosessina ja aliprosessina, jossa se suorittaa käsittelyn kutsumatta funktion tai ohjelman puhdistuskäsittelijää. Tämä moduuli toimisi tehokkaammin 'Linux'-käyttöjärjestelmässä. Säikeen puhdistus 'pop()', jonka suoritusparametrin arvo ei ole nolla, kutsuu puhdistuskäsittelijän. Kaikki siivoustoimenpiteet, jotka on työnnetty, mutta joita ei vielä vapautettu, nostetaan pois puhtaanapitopinosta ja suoritetaan viimeisen sisään ja ensimmäisenä ulos (LIFO) -järjestyksessä, kun säie pysähtyy, mutta sitä ei tarvitse kutsua tässä esimerkissä.






Ensimmäisen Python-käyttöjärjestelmän poistumisesimerkin koodinpätkä selitetään alla:

Ohjelma käynnistettiin tuomalla 'os'-kirjasto, koska olemme huolissamme ehtojen ja ehtojen täyttämisestä laitteemme käyttöjärjestelmään yhdistämiseksi. Sitten loimme 'PID:n' ja linkitimme 'Pythonin' 'os'-kirjastoon. Käytämme nyt ehdollista lausetta, jossa 'jos'-ehto on 'PID on suurempi kuin 0'.



Sen jälkeen käytimme “print()”-funktiota, jonka täytyy tulostaa lause “\nProcessing in Parent”, jossa “\n” käytetään kohdistimen siirtämiseen uudelle riville “if”-ehdon sisällä. Muuttuja 'info' alustetaan kutsumaan 'os.waitpid(pid,0)', jossa 'PID' alkaa '0'-väliltä. Jatkossa sovelsimme toista 'jos'-ehtoa 'os.WIFEXITED()' -kohtaan, jossa annoimme sille tietojen kuvauksen '1' sen käsittelyä varten. Se tallentaa käsittelytietonsa käyttäjän määrittelemään 'python_code' -funktioon, joka pitää sisällään 'Child Code to be Exit' -kirjoituskäskyn ja antaa sille arvon 'python_code' 'print()'-funktiossa.

Nyt siirrymme kohti 'muuta' -tilaamme, jossa on neljä tulostettavaa lausuntoa. Ensimmäisen 'print()'-funktion lauseke on 'Processing in Child'. Toinen tulostuskäsky on 'ID of Processing:' ja siinä on 'os.getpid()' -funktio, joka sisältää Pythonin kooditiedoston lapsikäsittelyä varten. Kolmas tässä käytetty tulostuslause on 'Hei Python!!' ja neljäs painoslause on 'Lasten käsittely on olemassa!' Lopuksi käytimme päämoduuliamme poistumaan olemassa olevan tiedoston ohjelman suorituksen käsittelystä, joka on 'os._exit()' ja jossa muuttuja 'os.EX_OK' on määritetty palauttamatta mitään funktiota käsittelyyn.


Koska lapsikäsittely on prioriteetti suoritettaessa ensin ja poistuttaessa ohjelma pääkäsittelystä, koska se vaatii enemmän aikaa. Joten tulosteen tilannevedos näyttää yksinkertaisesti edellisessä koodissa antamamme tulostuslausekkeet, mutta järjestelmässä luomamme tiedosto näyttää käsittelytunnuksensa '78695', jonka voimme nähdä viimeisessä tilannekuvassa. Ja sitten vanhemman poistumisen käsittely olisi '0', koska se ei edes käy läpi perusteellista käsittelyä, koska enemmän se vaatii käsittelijän.

Esimerkki # 2: 'os._exit()'-menetelmän käyttäminen yleisestä prosessista poistumiseen puskurien huuhtelematta

Tässä esimerkissä tarkastellaan yksinkertaista yleistä käsittelyn suorituksesta poistuvaa ilmiötä sen jälkeen, kun sen aikavälit on suoritettu sen lukemisesta järjestelmän läpi. Täällä emme myöskään käytä huuhtelupuskureita, koska niitä ei tarvita käsittelyyn. Loppujen lopuksi 'os._exit' toimisi tehokkaammin prosessista poistumisessa.


Katsotaanpa koodia, johon toimme Python-kirjaston 'os'. Ohjelma alkaa for-silmukalla, jossa käytämme muuttujaa 'p' säilyttämään tietoja ja asetamme sen alueen arvoon '6'. Sen jälkeen sovelsimme 'jos' -ehtoa muuttujaan 'p', joka tasoittaa kokonaisvälit arvoon '4'. Koska käsittelyjärjestelmä alkaa indeksistä '0', se ajaisi prosessin arvosta '0' arvoon '4'. Heti kun ehto täyttyy, joka on 'p':n arvo, tulee yhtä suureksi kuin 4, ohjelma suorittaa seuraavan käskyn, joka on 'print()'-funktio, ja antaa käsittelyyksikölle 'exit'. Viimeisellä rivillä käytimme 'os._exit()'-funktiota poistuaksemme funktiosta aloitettuamme '0' ja lopettaaksemme käsittelyn. Lopulta kaikki arvot, jotka tallennettiin muuttujaan 'p' käsittelyn jälkeen, tulostuvat tulosnäytölle, koska käytimme 'print()'-funktiota määrittämällä siihen muuttujan 'p'.


Lähtönäyttö näyttäisi vain numerot '0', '1', '2' ja '3', koska nämä ovat neljä numeroa, jotka saavutettiin käsittelyn jälkeen, ja sen jälkeen käsittely olisi poistuminen.

Esimerkki 3: 'os._exit()'-menetelmän käyttäminen prosessista poistumiseen, jota ei ole puskurissa

Joskus yritämme ohittaa joitain prosesseja, joita järjestelmän ei ollut helppo suorittaa prosessoinnissa tai lopettaa jostain syystä – useimmiten silloin, kun käsittely puuttuu tietyltä ohjelmalta tietyn materiaalin, kirjaston tai tiedostojen allokoinnin vuoksi. .


Katsotaanpa koodinpätkäämme, jossa käytimme 'Numerot' muuttujana ja asetimme sen vaihteluväliksi '0' - '7'. Nyt sovelsimme 'jos'-ehtoa, jossa 'numerot' tasaavat '5' indeksejä, ja sitten käytimme 'print()'-käskyä tulostamaan 'exit'-arvo. Myöhemmin käytimme erityistä 'raise SystemExit'-moduulia poistuaksemme prosessoinnista, kuten 'os._exit' ja käytimme 'print()'-toimintoa uudelleen näyttääksemme muuttujaan 'Numbers' tallennetut numerot prosessin lopettamisen jälkeen.


Tulosteen tilannekuvassa kuvataan selkeästi, että se ei näytä 'Numerot'-arvoja käytön lopettamisen jälkeen. Koska päämateriaalia, kuten kirjastoa ja alustusta, puuttuu, se palaa 'tyhjänä' tulosnäytössä ohjelman käsittelyn jälkeen ja palaa lukematta mitään arvoa, tai voi olla, että ohjelma ei mene suoritukseen.

Johtopäätös

Tässä artikkelissa olemme käsitelleet kolme esimerkkiä, jotka liittyvät Python-käyttöjärjestelmän poistumismenetelmään. Ensimmäisessä esimerkissä käytimme Python-käyttöjärjestelmän lopetusmoduulia poistumaan lapsiprosessista ilman huuhtelu- ja puhdistuskäsittelijöitä. Toisessa esimerkissä käytimme os-poistumismoduulia prosessin lopettamisessa yhdessä yleisessä koodiohjelmassa ilman puskurin tyhjentämistä. Kolmas esimerkki liittyy poissaolevan prosessin lopettamiseen, jota ei tällä hetkellä ole läsnä tai tallennettu järjestelmään.