Kaip naudoti skirtojo laiko komandą „Linux“.
Fatmawati Achmad Zaenuri / Shutterstock.com
Gerai, užtenka laiko kompiuteriui. Galite nurodyti procesams laiko limitus, nustatydami maksimalų laiką, kurį jie gali vykdyti naudodami komandą |_+_|. Štai pamoka, kaip apriboti programų vykdymą naudojant šią komandą.
Kuo jums naudingas laikas?
|_+_| komanda leidžia nustatyti laiko trukmę veiks programa. Bet kodėl tu norėtum tai daryti?
Vienas atvejis yra tada, kai tiksliai žinote, kiek laiko norite, kad procesas vyktų. Įprastas naudojimo atvejis yra |_+_| valdyti registravimo ar duomenų fiksavimo programą, kad žurnalo failai nenumaldomai neužimtų vietos standžiajame diske.
Kitas atvejis yra tada, kai nežinote, kiek laiko norite, kad procesas vyktų, bet žinote, kad nenorite, kad jis vyktų neribotą laiką. Galbūt turite įprotį nustatyti veikiančius procesus, sumažinti terminalo langą ir pamiršti apie juos.
Kai kurios programos – net paprastos komunalinės paslaugos – gali generuoti tinklo srautą tokiu lygiu, kuris gali trukdyti jūsų tinklo veikimui. Arba jie gali susieti išteklius tiksliniame įrenginyje, sulėtindami jo veikimą. (|_+_|, aš žiūriu į jus.) Tokio tipo programas palikti veikti ilgą laiką, kol nesate prie kompiuterio, yra bloga praktika.
Skelbimas|_+_| yra dalis GNU Core Utils taigi Linux ir Unix tipo Visose operacinėse sistemose, tokiose kaip „MacOS“, skirtas laikas. Nėra ką įdiegti; galite naudoti jį iš karto išėmus iš dėžutės.
Darbo pradžia naudojant skirtąjį laiką
Štai paprastas pavyzdys. Pavyzdžiui, su numatytosiomis komandų eilutės parinktimis, |_+_| komanda veiks tol, kol ją sustabdysite paspausdami Ctrl+C. Jei jo nepertrauksite, tai tiesiog tęsis.
timeout
Naudodami |_+_| galime įsitikinti, kad |_+_| neveikia ir neveikia, kramtydamas tinklo pralaidumą ir trikdydamas bet kokį įrenginį, kuris yra pinguojamas.
Ši kita komanda naudoja |_+_| iki termino |_+_|. Leidžiame 15 sekundžių veikti |_+_|.
timeout
Po 15 sekundžių |_+_| nutraukia |_+_| sesija ir mes grįžtame į komandinės eilutės eilutę.
Skirtojo laiko naudojimas su kitais laiko vienetais
Atminkite, kad mums nereikėjo pridėti s po 15. |_+_| daro prielaidą, kad vertė yra sekundėmis. Galite pridėti s, bet tai tikrai neturi jokio skirtumo.
SkelbimasNorėdami naudoti laiko reikšmę, išmatuotą minutėmis, valandomis arba dienomis, pridėkite m, h arba d.
Norėdami, kad ping vyktų tris minutes, naudokite šią komandą:
timeout
|_+_| veiks tris minutes prieš |_+_| įeina ir sustabdo |_+_| sesija.
Duomenų fiksavimo apribojimas su skirtuoju laiku
Kai kurie duomenų rinkimo failai gali labai greitai išaugti. Kad tokie failai netaptų nepatogūs ar net probleminio dydžio, apribokite fiksavimo programos veikimo laiką.
Šiame pavyzdyje mes naudojame |_+_|, a tinklo srauto fiksavimas įrankis. Bandymo mašinose, apie kurias buvo tiriamas šis straipsnis, |_+_| jau buvo įdiegta Ubuntu Linux ir Fedora Linux. Jis turėjo būti įdiegtas „Manjaro Linux“ ir „Arch Linux“ su šia komanda:
ping
Galime paleisti |_+_| 10 sekundžių su numatytosiomis parinktimis ir nukreipkite išvestį į failą, pavadintą capture.txt, naudodami šią komandą:
timeout
Skelbimas
(|_+_| turi savo parinktis įrašyti užfiksuotą tinklo srautą į failą. Tai greitas įsilaužimas, nes mes kalbame apie |_+_|, o ne apie |_+_|.)
|_+_| pradeda fiksuoti tinklo srautą ir laukiame 10 sekundžių. Ir 10 sekundžių ateina ir praeina ir |_+_| vis dar veikia, o Capture.txt vis didėja. Norint sustabdyti |_+_|, reikės skubiai paspausti Ctrl+C.
Capture.txt failo dydis tikrinamas naudojant |_+_| rodo, kad per kelias sekundes jis išaugo iki 209 tūkst. Tas failas sparčiai augo!
ping
Kas nutiko? Kodėl ne |_+_| sustoti |_+_|?
Viskas susiję su signalais.
Tinkamo signalo siuntimas
Kai |_+_| nori sustabdyti programą, kurią siunčia SIGTERM signalas . Tai mandagiai prašo programą nutraukti. Kai kurios programos gali nepaisyti SIGTERM signalo. Kai tai atsitiks, turime pasakyti |_+_| būti šiek tiek stipresnis.
Tai galime padaryti paklausę |_+_| vietoj to siųsti SIGKILL signalą.
SIGKILL signalo negalima sugauti, užblokuoti ar ignoruoti – jis visada perduodamas. SIGKILL mandagiai neprašo programos sustabdyti. SIGKILL slepiasi už kampo su chronometru ir cosh.
SkelbimasGalime naudoti |_+_| (signalo) parinktis pasakyti |_+_| siųsti SIGKILL signalą.
timeout
Šį kartą, kai tik praeina 10 sekundžių, |_+_| yra sustabdytas.
Pirmiausia mandagiai paklausk
Galime paklausti |_+_| bandyti sustabdyti programą naudojant SIGTERM ir siųsti SIGKILL tik tuo atveju, jei SIGTERM neveikia.
Norėdami tai padaryti, naudojame |_+_| (nužudyti po) parinktis. |_+_| parinktis reikalauja laiko reikšmės kaip parametro.
Šioje komandoje mes klausiame |_+_| leisti |_+_| paleiskite 30 sekundžių, o tada nutraukite jį SIGTERM signalu. Jei |_+_| vis dar veikia po 40 sekundžių, tai reiškia, kad diplomatinis SIGTERM buvo ignoruojamas ir |_+_| turėtų atsiųsti SIGKILL, kad užbaigtų darbą.
|_+_| yra įrankis, kuris gali stebėti branduolio žiedo buferio pranešimus ir parodyti juos terminalo lange.
ping
Skelbimas
|_+_| veikia 30 sekundžių ir sustoja, kai gauna SIGTERM signalą.
Žinome, kad sustojo ne SIGKILL |_+_| nes SIGKILL terminalo lange visada palieka vieno žodžio nekrologą: Killed. Šiuo atveju taip neatsitiko.
Programos išėjimo kodo gavimas
Gerai veikiančios programos, pasibaigusios, perduoda vertę atgal į apvalkalą. Tai žinoma kaip išėjimo kodas. Paprastai tai naudojama norint pasakyti apvalkalui arba bet kokiam procesui, paleidusiam programą, ar programai vykdant kilo problemų.
|_+_| pateikia savo išėjimo kodą, bet mums tai gali nerūpėti. Tikriausiai mus labiau domina išėjimo iš proceso kodas, kuris |_+_| yra kontroliuojantis.
Ši komanda leidžia |_+_| paleisti penkias sekundes. Tai bando kompiuterį, pavadintą Nostromo, kuris yra bandomajame tinkle, kuris buvo naudojamas tiriant šį straipsnį.
timeout
Komanda veikia penkias sekundes ir |_+_| jį nutraukia. Tada galime patikrinti išėjimo kodą naudodami šią komandą:
ping
Skelbimas
Išėjimo kodas yra 124. Tai reikšmė |_+_| naudoja, kad nurodytų, kad programa buvo nutraukta naudojant SIGTERM. Jei SIGKILL nutraukia programą, išėjimo kodas yra 137.
Jei pertraukiame programą paspausdami Ctrl+C, išėjimo kodas iš |_+_| yra nulis.
ping
timeout
Jei programos vykdymas baigiasi prieš |_+_| jį nutraukia, |_+_| gali perduoti išėjimo kodą iš programos atgal į apvalkalą.
Kad tai įvyktų, programa turi sustoti savaime (kitaip tariant, ji yra ne nutraukė |_+_|), ir mes turime naudoti |_+_| variantas.
Jei naudosime |_+_| (skaičiuoti) parinktis, kurios reikšmė yra penki |_+_| atleis tik penkis prašymus. Jei duosime |_+_| vienos minutės trukmė, |_+_| tikrai bus nutrauktas savaime. Tada galime patikrinti išėjimo reikšmę naudodami |_+_|.
ping
timeout
|_+_| užbaigia penkias ping užklausas ir nutraukia. Išėjimo kodas yra nulis.
SkelbimasNorėdami patikrinti, ar išėjimo kodas yra iš |_+_|, priverskime |_+_| Norėdami sugeneruoti kitą išėjimo kodą. Jei bandome siųsti ping užklausas neegzistuojančiu IP adresu, |_+_| nepavyks su klaidos išėjimo kodu. Tada galime naudoti |_+_| patikrinti, ar išėjimo kodas nėra nulis.
ping
timeout
|_+_| komanda akivaizdžiai negali pasiekti neegzistuojančio įrenginio, todėl praneša apie klaidą ir užsidaro. Išėjimo kodas yra du. Tai yra išėjimo kodas |_+_| naudoja bendroms klaidoms.
Pagrindinių taisyklių nustatymas
|_+_| kalba apie tam tikrų ribų nustatymą vykdomoms programoms. Jei kyla pavojus, kad žurnalo failai gali perkrauti standųjį diską arba galite pamiršti, kad palikote veikti tinklo įrankį, suvyniokite juos į |_+_| ir leiskite kompiuteriui savarankiškai reguliuotis.
SUSIJĘS: Geriausi Linux nešiojamieji kompiuteriai kūrėjams ir entuziastams
SKAITYTI KITAS- › Kompiuterio aplankas yra 40: kaip „Xerox Star“ sukūrė darbalaukį
- & rsaquo; 2021 m. kibernetinis pirmadienis: geriausi techniniai pasiūlymai
- › „Microsoft Excel“ funkcijos ir formulės: koks skirtumas?
- › Kaip rasti „Spotify“ supakuotą 2021 m
- & rsaquo; 2021 m. kibernetinis pirmadienis: geriausi „Apple“ pasiūlymai
- › 5 svetainės, kurias turėtų pažymėti kiekvienas „Linux“ vartotojas
Dave'as McKay'us pirmą kartą naudojo kompiuterius, kai buvo madinga perforuoto popieriaus juosta, ir nuo tada jis programuoja. Daugiau nei 30 metų IT pramonėje jis dabar yra visą darbo dieną dirbantis technologijų žurnalistas. Per savo karjerą jis dirbo laisvai samdomu programuotoju, tarptautinės programinės įrangos kūrimo komandos vadovu, IT paslaugų projektų vadovu, o pastaruoju metu – duomenų apsaugos pareigūnu. Jo raštą paskelbė howtogeek.com, cloudsavvyit.com, itenterpriser.com ir opensource.com. Dave'as yra Linux evangelistas ir atvirojo kodo advokatas.
Skaityti visą biografiją