Učebnica

per aspera ad astra

Nástroje používateľa

Nástoje správy stránok


linux:prikazy_pre_pracu_s_procesmi

Rozdiely

Tu môžete vidieť rozdiely medzi vybranou verziou a aktuálnou verziou danej stránky.

Odkaz na tento prehľad zmien

Obojstranná predošlá revízia Predchádzajúca revízia
Nasledujúca revízia
Predchádzajúca revízia
linux:prikazy_pre_pracu_s_procesmi [2010/12/01 09:14]
Mário Lacko doložená úloha
linux:prikazy_pre_pracu_s_procesmi [2016/07/28 16:07] (aktuálne)
Riadok 1: Riadok 1:
-====== Linux: Príkazy pre prácu s procesmi ======+====== Príkazy pre prácu s procesmi ======
  
  
 ==== pstree ==== ==== pstree ====
-  * ''pstree''Vypíše hierarchický strom procesov+ 
 +Unixový príkaz, ktorý vypíše zoznam spustených procesov v stromovej štruktúre. Pekne nadväzne ukáže, ktorý proces bol spustený cez ktorý proces a takisto sa dá zistiť, ktorý v poradí bol spustený. 
 + 
 +Pre základné spustenie programu stačí napísať iba ''pstree'', je možné ale použiť aj prepínače. 
 + 
 + pstree 
 + 
 +Prepínače 
 +  * ''-?'' nápoveda 
 +  * ''-a'' zobrazí argumenty príkazového riadku 
 +  * ''-c'' kompaktné zobrazenie 
 +  * ''-h'' zvýraznenie aktuálneho procesu a jeho predkov 
 +  * ''-H'' PID zvýrazniť tento proces a jeho predkov 
 +  * ''-G'' použit znaky čiar pre VT100 
 +  * ''-l'' neskracovať dlhé čiary 
 +  * ''-U'' použiť unicode znaky čiar 
 +  * ''PID'' začať od tohto procesu, štandardne začína od 1 (init) 
 +  * ''USER'' zobraziť iba procesy začinajúce od tohto užívateľa 
 + 
 + 
 +Napríklad, pre zobrazenie všetkých procesov od jedného užívateľa, a ich nadväznosť na ďalšie (ak jeden proces spúšťa ďalšie procesy), použijeme zápis ''pstree menouzivatela''. Výsledok potom môže vyzerať ako tu nižšie napísaný. 
 + 
 +<code> 
 +majster@server:~$ pstree majster 
 +bonobo-activati───{bonobo-activat} 
 + 
 +clock-applet 
 + 
 +dbus-daemon 
 + 
 +dbus-launch 
 + 
 +gnome-session─┬─bluetooth-apple 
 +              ├─compiz───sh───gtk-window-deco 
 +              ├─evolution-alarm───{evolution-alar} 
 +              ├─gdu-notificatio 
 +              ├─gnome-panel 
 +              ├─gnome-power-man 
 +              ├─ica-launcher─┬─avahi-publish-s 
 +              │              └─ica─┬─ica 
 +              │                    └─2*[{ica}] 
 +              ├─nautilus───{nautilus} 
 +              ├─nm-applet 
 +              ├─polkit-gnome-au 
 +              ├─python 
 +              ├─ssh-agent 
 +              ├─update-notifier 
 +              └─{gnome-session} 
 +</code>
  
 ==== top ==== ==== top ====
-  * ''top'' - Zobrazuje zoznam procesov - interaktívne+ 
 +Pre monitorovanie práve bežiacich procesov a podprocesov v unixových systémoch používame nástroj ''top''. Na rozdiel od iných nástrojov, ako je napríklad príkaz ''ps'', jeho použitie nie je dávkové ale priebehové. To znamená, že program beží až kým ho nevypneme stlačením klávesy ''Q'', nie ako väčšina príkazov, ktoré vypíšu dávku informácií a samé sa ukončia. Základné spustenie príkazu: 
 + 
 + top 
 + 
 +Príkaz po svojom spustení zobrazuje v záhlaví pod označením load averages to isté, ako príkaz ''uptime''. O riadok nižšie sa zobrazí súhrn procesov, stav CPU, využitie pamäte a swap. Štandardne sa zobrazujú informácie ako PID (Process ID), meno uživateľa pod ktorým daný proces beží, priorita, nice, veľkosti v operačnej pamäti, aktuálny stav procesu, zaťaženie procesova v percentách, obsadená pamäť v percentách, čas behu procesu (merané v čase zaťaženia procesora), a nakoniec príkaz, ktorým bol proces spustený. Samozrejme, je možné zobraziť príkaz aj spolu s parametrami, s ktorými bol volaný.  
 + 
 +<code> 
 +top 12:35:41 up 4 min,  2 users,  load average: 0.22, 0.76, 0.40 
 +Tasks:  89 total,   1 running,  88 sleeping,   0 stopped,   0 zombie 
 +Cpu(s):  0.0%us,  0.3%sy,  0.0%ni, 99.7%id,  0.0%wa,  0.0%hi,  0.0%si 
 +Mem:    504280k total,   192940k used,   311340k free,    17288k buffers 
 +Swap:   522236k total,        0k used,   522236k free,    82720k cached 
 + 
 +  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND            
 + 1215 majo      20   0 19352 1268  944 R  0.3  0.3   0:00.05 top 
 +    1 root      20   0 23996 2128 1324 S  0.0  0.4   0:01.31 init  
 +    2 root      20          0    0 S  0.0  0.0   0:00.00 kthreadd 
 +    3 root      20          0    0 S  0.0  0.0   0:00.45 ksoftirqd/
 +    4 root      20          0    0 S  0.0  0.0   0:00.04 kworker/0:
 +    5 root      20          0    0 S  0.0  0.0   0:00.72 kworker/u:
 +    6 root      RT          0    0 S  0.0  0.0   0:00.00 migration/
 +    7 root       0 -20        0    0 S  0.0  0.0   0:00.00 cpuset 
 +    8 root       0 -20        0    0 S  0.0  0.0   0:00.00 khelper 
 +    9 root       0 -20        0    0 S  0.0  0.0   0:00.00 netns 
 +   10 root      20          0    0 S  0.0  0.0   0:00.00 sync_supers 
 +   11 root      20          0    0 S  0.0  0.0   0:00.00 bdi-default 
 +   12 root       0 -20        0    0 S  0.0  0.0   0:00.00 kintegrityd 
 +   13 root       0 -20        0    0 S  0.0  0.0   0:00.00 kblockd 
 +   14 root       0 -20        0    0 S  0.0  0.0   0:00.00 kacpid 
 +   15 root       0 -20        0    0 S  0.0  0.0   0:00.00 kacpi_notif 
 +   16 root       0 -20        0    0 S  0.0  0.0   0:00.00 kacpi_hotpl 
 +   17 root       0 -20        0    0 S  0.0  0.0   0:00.00 ata_sff  
 +</code>
  
 ==== ps ==== ==== ps ====
-  * ''ps''Vypíše procesy užívateľa + 
-  * ''ps a''Vypíšvšetky procesy +Vo väčšine unixových systémoch príkaz ps (process status) zobrazuje bežiace procesy. Je príbuzný príkazu ''pstree'' ale aj ''top''. Pri nezadaní žiadných parametrov príkaz ''top'' vypíše nasledujúce informácie: 
-  * ''ps u'' Vypíše procesy v dlhom formáte + 
-  ''ps au''Všectky procesy v dlhom formáte+<code> 
 +user@server:~$ ps 
 +  PID TTY          TIME CMD 
 + 1118 pts/0    00:00:01 bash 
 + 1260 pts/0    00:00:00 ps 
 +</code> 
 + 
 +Medzi parametre príkazu ps patria: 
 +  * ''-A -e'' všetky procesy 
 +  * ''-f'' plný výpis 
 +  * ''-u'' užívateľský orientovaný formát 
 +  * ''-l'' dlhý formát 
 +  * ''-v'' formát virtuálnej pamäte 
 + 
 +Najčastejšie budete pri svojej práci používať kombináciu dvoch parametrov. Jednak bude nevyhnutné vypisovať užívateľský orientovaný formát a vo väčšine prípadov aj všetky procesy. Sú dve kombinácie, ktoré vyhovujú požadovanému výberu. Obe si ich ukážeme napísane pod sebou, samozrejme, vy budete používať iba jednu z nich, ktorá Vám viac vyhovuje. Vyskúšajte si ale obe. 
 + 
 + ps -au 
 + ps -ef 
 + 
 +Pri vypisovaní dlhého formátu sa často stáva, že výpis na obrazovke je oveľa dlhší ako je výška obrazovky. Tá štandardne obsahuje 25 znakov (z hora dole) a pri používaní vzdialeného terminálu, môžobsahovať aj cez 50 a viac. Ale ak sa Vám zobrazí cez 200 riadkov, nie je to žiadna zábava. Preto sa naučíme kombinovať príkaz ps s ďalšími dvoma príkazmi. 
 + 
 +Najprv si ukážeme ako zastaviť vypisovanie textu na obrazovku, po jej zaplnení. Výpis z jedného príkazu (''ps'') použijeme ako vstup do druhého programu (''more''), to sa realizuje pomocou zvislej čiary (''|''). Takémuto prepojeniu procesy do reťazca sa hovorí rúra (''pipeline'').  
 + 
 + ps -au | more 
 + 
 +Jednoduchšie je použiť príkaz, ktorý nám odfiltruje iba tie riadky, ktoré obsahuju požadované slovo. Napríklad ak hľadáme nejaký proces podľa mena programu. 
 + 
 + ps -au | grep login
  
 ==== kill ==== ==== kill ====
-  * ''kill {PID procesu}'' - Pošle procesu signál ukončiť + 
-  ''kill -9 8340''Bez výzvy "zabije" program 8340 (natvrdo signálom ''SIGKILL''+V mnohých unixových systémoch sa používa príkaz ''kill'' na poslanie rôzných signálov procesom. Napríklad umožňuje poslať príkaz ''kill'' na ukončenie procesu
-  ''kill -l'' Vypíše zoznam signálov+ 
 + kill PID 
 + 
 +Príkaz ''kill'' potrebuje minimálne jeden parameter, a to je Process ID (PID), ktorému bez ďalších parametrov pošle ''SIGKILL''
 + 
 +^  Číslo  ^ Názov  ^ Názov  ^  Popis  ^ 
 +|   1 |  ''HUP''   | Hangup    | Tento signál sa posiela procesu, ak je jeho terminál uzavretý | 
 +|   2 |  ''INT''   | Interrupt | Prerušenie procesu cez klávesnicu, ak užívateľ stlačí CTRL+C | 
 +|   3 |  ''QUIT''  | Quit      | Proces sa ukončí a zapiše stav pamäte s ktorou pracoval (core dump) | 
 +|   4 |  ''ILL''   | Illegal instruction  | Tento signál odosiela operačný systém procesu, ktorý vykonal neznámu funkciu | 
 +|   8 |  ''FPE''   | Floating point exception  | Signál sa pošle programu, ktorý sa snaží deliť nulou | 
 +|   9 |  ''KILL''  | Kill  | „Zabitie“ procesu okamžite. Násilne ukončenie pri nečinnosti, tento signál sa neda obísť | 
 +|  10 |  ''USR1''  | User-defined  | Užívateľský definovaný signál | 
 +|  11 |  ''SEGV''  | Segmentation fault  | Posiela sa signálom, ktoré nesprávne pracujú s pamäťou | 
 +|  15 |  ''TERM''  | Terminate  | Ukončenie procesu | 
 +|  18 |  ''CONT''  | Continue   | Pokračovanie procesu, ktorý obdržal niektorý z nasledujúcich  dvoch signálov (19, 20| 
 +|  19 |  ''STOP''  | Stop  | Zastavenie procesu, nedá sa mu vyhnúť | 
 +|  20 |  ''TSTP''  | Terminal stop  | Zastavenie procesu, dá sa mu vyhnúť. Tento signál obrdží proces, ktorý beži interaktívne a počas jeho behu stlačíte CTRL+Z | 
 + 
 +Toto bol iba stručný zoznam základných signálov. Všetky signály začínajú reťazcom ''SIG'', teda signál ''KILL'' sa posiela ako ''SIGKILL'' Pokiaľ chcete vedieť, ktoré signály podporuje vaša distribúcia, Vypíšete si ich príkazom: 
 + 
 + kill -l 
 + 
 +Povedzme, žchceme „zabiť“ proces s číslom PID 3145, môžeme to spraviť jedným z nasledujúcich príkazov: 
 + 
 + kill -9 3145 
 + kill -s KILL 3145 
 + kill -KILL 3145 
 + 
 +Podobne si ešte ukážeme akými spôsobmi môžeme ukončiť proces s PID 3145: 
 + 
 + kill 3145 
 + kill -15 3145 
 + kill -s TERM 3145 
 + kill  -TERM 3145
  
 ==== killall ==== ==== killall ====
-  * ''killall {meno procesu}'' - Pošle procesu ''{meno procesu}'' signál ukončiť ''SIGTERM'' + 
-  * ''killall -HUP sendmail'' - Pošle signál ''SIGHUP''etkým procesom s názvom sendmail (znovuprečítanie konfiguračného súboru) +Pre ukončenie všetkých procesov, ktoré majú rovnaké meno (sú jeden program) sa používa v unixových systémoch príkaz ''killall''. Rozdiel medzi príkazmi ''kill'' a ''killall'' je v tom, že príkaz ''kill'' na identifikáciu používa PID procesu, preto dokáže obslúžiť iba jeden proces. Zato ''killall'' používa na identifikáciu meno procesu, preto obslúži všetky procesy s rovnakým menom.  
-  * ''killall -i bash''Pred zaslaním signálu sa interaktívne pýta na potvrdenie akcie+ 
 + killall -9 mc 
 + 
 +Príklad hore „zabije“ všetky procesy s názvom ''mc''. Všetkým procesom s názvom mc pošle signal ''SIGKILL''. Pre poslanie iného signálu, napríklad ''SIGTERM'' pre etky procesy s názvom ''bash'', zadáme do príkazového riadku: 
 + 
 + killall -TERM bash
  
 ==== nice ==== ==== nice ====
-  * ''nice [-priorita] <prikaz> [argumenty_prikazu]'' - Spustí príkaz so zmenenou prioritou + 
-  * ''nice xfractint'' - Spustí príkaz so zníženou prioritou +''nice'' je unixový príkaz, ktorý je mapovaný priamo na volanie jádra Linuxu s rovnakým názvom. Jeho úlohou je spúštanie iného príkazu so zmenenou prioritou, teda inou ako je základná priorita. Tento príkaz sa prvý krát objavil v AT&T UNIXu verzie 6. Tento príkaz odpovedá štandardu POSIX (IEEE Std 1003.1-2004). 
-  * ''nice l3enc souce.wav dest.mp3'' - Spustí príkaz s nižšou prioritou a parametrami + 
-  * ''nice -20 l3enc souce.wav dest.mp3'' - Spustí príkaz s najnižšou prioritou (+20) +Iné príkazy sa spúštajú pomocou zmeny časovej priority. Ak je zadaná hodnota inkrementu, je použitá, ak nie je zadaná, použije sa štandardná hodnota 10. Užívateľ ''root'', môže spustiť proces s najvyššou prioritou pomocou použitia negatívneho inkrementu. Jeho hodnota sa môže meniť v rozsahu od -20 (najvyššia) až po 19 (najnižšia). Áno, záporná hodnota je najvyššia. 
-  * ''nice -n "-20" mpeg_play video.mpg'' - Spustí príkaz s najvyššou prioritou (-20 - môže iba root)+ 
 + nice [-priorita] <prikaz> [argumenty_prikazu] 
 + 
 +Predchadzajúci základný zápis príkazu hovorí o tom, ako spúštať príkaz nice. Okrem názvu príkazu (nice) musíme použiť aj príkaz, ktorý chceme zapnúť. Voliteľné položky sú priorita (inkrement) a argumenty pre príkaz, ktorý spúšťame cez príkaz nice. 
 + 
 +Návratové hodnoty príkazu: 
 +  * ''0'' príkaz sa bezchybne vykonal 
 +  * ''1–125'' chybový stav 
 +  * ''126'' program sa našiel, ale nemohol sa vykonať 
 +  * ''127'' program sa nenašiel 
 + 
 +Príklad pre spustenie príkazu ''l3enc'' na prekódovanie WAV súboru do MP3 s najvyššou prioritou
 + 
 + nice -20 l3enc mojapesnicka.wav mojapesnicka.mp3
  
 ==== renice ==== ==== renice ====
-  * ''renice <priorita> <PID>'' - Zmení prioritu bežiaceho procesu + 
-  * ''renice +5 987'' - Zníži prioritu procesu 987 na 5 +Na veľmi podobnom princípe ako ''nice'' pracuje aj príkaz ''renice''. Zatiaľ čo ''nice'' sa používa na spúštanie nových príkazov, ''renice'' mení prioritu už bežiacim procesom.  
-  * ''renice -20 -root''Zmení prioritu všetkých procesov užívateľa root na maximálnu + 
-  * ''renice +20 -g users'' - Znížprioritu všetkých procesov užívateľov v skupine users na minimum+ renice <priorita> <PID> 
 + 
 +Pri používaní príkazu ''renice'' musíme zadávať minimálne dva parametre. Jednak novú prioritu a potom aj číslo procesu, ktorému chceme prioritu zmeniť. Napríklad pre zmenu priority na +pre proces číslo ''987'' zadáme príkaz: 
 + 
 + renice +5 987 
 +  
 +Pre zmenu priority pre všetky procesy jedného užívateľa použijeme navyše prepínač ''-u'' nasledovaný menom užívateľa. Pre maximálnu prioritu všetkých procesov užívateľa ''root'' použijeme: 
 + 
 + renice -20 -u root 
 + 
 +Zmena priority pre všetky procesy konkrétneho užívateľa nie je jediná môžnosť ako meniť prioritu pre viac procesov. Druhá z možnosti je zmeniť prioritu pre všetky procesy užívateľov, v konkrétnej skupine. Pre zníženie priority všetkých procesov užívateľov v skupine ''users'' na najnižšiu použijeme zápis príkazu: 
 + 
 + renice +19 -g users
  
 ==== at ==== ==== at ====
-  * ''at {CAS}'' - Spustí príkaz alebo skript v danom čase + 
-  ''at -f budik.skript 12:30''Pridá skript do zoznamu jobu určených spusteniu - na najbližší čas 12:30 +Pre naplánované odložené spúštanie príkazov (skriptov) slúži program označovaný ako ''at''. Štandardne sa používa spustením príkazu s hodnotou času, prípadne aj dátumu, kedy sa má príkaz spustit. Po spustení príkazu s nadefinovaným časom pokračuje druhá časť, zadávanie príkazov do jednotlivých riadkov. Pre ukončenie vstupu, zadávania príkazov, slúži kombinácia kláves ''CTRL+D''. 
-  * ''at -q z -f budik.skript 12:30'' - ...naviac do užívateľovej fronty z - má nižšie priority pri behu + 
-  ''at -f budik.skript 4pm + 3 days'' - Za 3 dny 16:00 spustí budík + at time 
-  * ''at -f budik.skript 10am Jul 31'' - Spustí budík 31. júla v 10 ráno+ 
 +Povedzme, že chceme naplánovať spustenie jedného príkazu ''ls -al /bin'' o 10:23 , postupujeme takto: 
 + 
 + user@server:~$ at 10:23 
 + at> ls -al /bin 
 + at>  
 + 
 +Zadávanie príkazov ukončíme stlačením ''CTRL+D'' 
 + 
 +Ak už máme pripravený skript, ktorý chceme spustiť, teda nechceme zadávať ručne príkazy ako v predošlom príklade, použijeme parameter ''-skript'', kde ''skript'' je názov a prípadne aj cesta umiestneniu nášho skriptu. Ako skript je v príklade dole uvedené ''budik.sh'', ktorý sme naplánovali na 6:30
 + 
 + at -f budik.sh 6:30 
 + 
 +Zápis času spustenia skriptu ''budik.sh'' môže byť oveľa bohatší. Napríklad o 4 dni čase 14:00
 + 
 + at -f budik.sh 4pm + 3 days 
  
 ==== atq ==== ==== atq ====
-  * ''atq'' - Vypíše zoznam načasovaných úloh + 
-  ''atq -v''Vypíše zoznam načasovaných i dokončených úloh+Zoznam načasovaných úloh zobrazíme príkazom ''atq'' 
 + 
 + user@server:~$ atq 
 + 5 Sun Feb 19 18:00:00 2012 
 + 6 Sat Feb 18 18:03:00 2012 
 + 
 +Ten istý výpis ako pri ''atq'' dostaneme pri použití prepínača ''-l'' príkaze ''at''. V prípade použitia prepínača ''-v'' v príkaze ''atq'', získame tiež zoznam už ukončených úloh.
  
 ==== atrm ==== ==== atrm ====
-  * ''atrm [ID_úlohy]'' - Odstráni úlohu z fronty 
-  * ''atrm'' - Odstráni poslednú úlohu z fronty úloh 
-  * ''atrm c00da1c6c.02'' - Odstráni úlohu s ID c00da1c6c.02 z fronty úloh 
  
-==== batch ==== +Na zmazanie úloh sa používa príkaz ''atrm''. Pomocou príkazov ''atq'' alebo ''at -l'' si zobrazíme zoznam úloh, ktoré ešte neboli vykonané zo zoznamu si vyberieme úlohu, ktorú chceme zmazať. Ak by sme chceli zmazať úlohu 5 z príkladu uverejneného pri príkaze ''atq'' zapíšeme do terminálu:
-  * ''batch [CAS]'' - Ako at ale spustí úlohu až pri nízkom zaťažení (load)Nemusí sa uvádzať čas+
  
 + atrm 5
  
 +Pri nezadaní žiadneho čísla úlohy sa aj tak vykoná príkaz ''atrm'' a vymaže zo zoznamu poslednú zaradenú úlohu zo zoznamu.
  
 +==== batch ====
 +
 +''batch'' funguje úplne totožne ako príkaz ''at''. Jeho jediný rozdiel tkvie v tom, že nemusíme zadávať čas, ale spustí danú úlohu okamžite pri nízkom zaťažení (load).
  
 ===== Príkazy pre zobrazenie statusu a systémových informácií ===== ===== Príkazy pre zobrazenie statusu a systémových informácií =====
  
 ==== free ==== ==== free ====
-  * ''free''Vypíše využitie pamäti+Je jednoúčelový príkaz, po ktorého spustenú sa zobrazí štatistika ohľadne pamäte. Voľná, obsadená, virtuálna, všetko čo Vás môže o pamäti zaujímať. 
 + 
 + free 
 + 
 +Aj pri príkaze free môžete použiť rôzne prepínače, aj tie, ktoré sme sa už naučili skôr: 
 +  * ''-?'' nápoveda k príkazu 
 +  * ''-b'' výstup zobrazí v bytoch 
 +  * ''-k'' výstup zobrazí v kilobytoch 
 +  * ''-m'' výstup zobrazí v megabytoch 
 +  * ''-g'' výstup zobrazí v gigabitoch 
 +  * ''-V'' informácie o verzií
  
 ==== procinfo ==== ==== procinfo ====
-  * ''procinfo'' - Vypíše informácie o pamäti a prerušení 
  
-==== uptime ==== +Systémové štatistiky získanez adresára ''/proc'' zobrazuje v prehľadnom tvare príkaz procinfo. Medzi informácie zobrazené týmto príkazom patrí: 
-  * ''uptime'' - Vypíše ako dlho už beží počítač+  * štatistické informácie o využití pamäte, 
 +  * možstvá času využité rôznými skupinami procesov (napr. procesy jádra, užívateľské procesy), 
 +  * informácie o stránkovaní pamäte, 
 +  * diskové štatistiky, 
 +  * informácie o IRQ prerušeniach.
  
-==== tload ==== +==== uptime ====
-  * ''tload'' - Zobrazuje na terminálu textové zaťaženie+
  
-==== xload ==== +Zobrazí základné informácie o behu systému, hlavne doba behu systému, počet prihlasených užívateľov a zaťaženie systému. Takýto výpis môževyzerať takto:
-  * ''xload'' - Zobrazuje zaťaženie v okne v X window+
  
-==== xsysinfo ==== + user@server:~# uptime 
-  * ''xsysinfo'' - Zobrazuje zaťaženie a voľnú pamäť v X window+  11:15:25 up 19 days,  2:53,  2 users,  load average: 0.07, 0.16, 0.10
  
 ==== reboot ==== ==== reboot ====
-  * ''reboot'' - Reštartuje počítač (iba pre roota)+ 
 +I napriek tomu, že operačný systém s jádrom Linuxu nepotrebuje takmer nikdy reštartovať, občas takáto situácia nastane. Pri zmene parametrov jednotlivých služieb stačí reštartovať konkrétne služby, ale pri výmene jádra operačné systému je potrebné reštartovať celý systém. V takomto prípade sa zíde program s názvom ''reboot''. Jeho použitie je úplne jednoduché: 
 + 
 + reboot 
 + 
 +Tento program môže spúštať iba superužívateľ.
  
 ==== halt ==== ==== halt ====
-  * ''halt'' - Zastaví počítač (iba root)+ 
 +Pre zastavenie počítača poslúži príkaz ''halt''
 + 
 + halt 
 + 
 +Aj tento program môže spúštať iba superužívateľ.
  
 ==== shutdown ==== ==== shutdown ====
-  * ''shutdown <CAS> [hlaska_uzivatelom]'' - Rozbehne vypínanie systému + 
-  * ''shutdown 12:45'' - Prevedie vypnutie v 12:45 +Na bezpečné vypnutie unixového systému slúži príkaz ''shutdown''. Všetci prihlásení užívatelia sú upozornení, že systém sa bude vypínať a prihlasovanie do systému sa zablokuje. Ukončenie systému môže byť okamžité, alebo naplánované na určitý čas. Všetky procesy sú informované o skorom vypnutí systému zaslaním signálu ''SIGTERM'' všetkým procesom. To dáva dostatok času pre uloženie práce programom ako je ''vi''. ''shutdown'' zároveň mení runlevel procesov spustených cez ''init'' na runlevel 0 (runlevel 0 sa používa pre vypnutie systému, runlevel 6 zasa na reštartovanie systému).  
-  * ''shutdown +5 "Za 5 minut koncime!"''Prevedie vypnutie za 5 minút a upozorní užívateľov + 
-  * ''shutdown -h now'' - Prevedie vypnutie teraz a zastaví počítač (haltom) + shutdown <CAS> [hlaska pre uzivatelov] 
-  * ''shutdown -c''Zruší už bežiaci či načasovaný shutdown+ 
 +Asi najjednoduchšie použitie príkazu ''shutdown'' ilustruje príklad nad týmto textom. Medzi povinný argument patrí ''<CAS>'', ktorý určuje čas v akom sa má systém zastaviť. Medzi nepovinný údaj zasa patrí ''hláška pre užívateľov''. Túto hlašku pošle príkaz shutdown prostredníctvom príkazu wall pre všetkých užívateľov, prihlasených do systému. 
 + 
 + shutdown 12:45 Restart systemu cez obednajsiu pauzu 
 + shutdown 12:45 
 + 
 +Tieto dva príklady prevedú vypnutie systému čase 12:45. Rozdiel medzi nimi je v tom, že prvý príklad navyše odošle hlášku užívateľom. 
 + 
 +Systém môžeme vypnúť aj nastavením času do vypnutia. Napríklad, ak chceme vypnúť systém o 5 minút, potom spustíme shutdown príkazom: 
 + 
 + shutdown +5 
 + 
 +Medzi základné parametre príkazu shutdown patria: 
 +  * ''-h'' zastaví počítač príkazom halt 
 +  * ''-r'' po vypnutí systému reštartuje počítač 
 +  * ''-f'' preskočí po vypnutí príkaz fsck 
 +  * ''-F'' vinutí spustenie príkazu fsck 
 +  * ''-c'' zruší načasovaný shutdown
  
 ==== init ==== ==== init ====
-  * ''init [runlevel]'' - Zmení runlevel (softkonfigurácie) systému + 
-  * ''init s'' - Systém prejde do single-user módu +''init'' (//**init**ialization//) proces je nadradený proces pre všetky ostatné procesy a jeho PID je 1Štandardne zavádzač systému (boot loaderspúšťa jádro systému a jádro spúšta proces ''init''. Jeho hlavnou úlohou je vytvorenie procesov zo skriptov umiestnených v ''/etc/inittab''. Medzi dôležité umiestnenia patrí aj adresár ''/etc/init.d'' kde sa nachádzajú potrebné skripty pre prácu démonmi. 
-  ''init c''Spôsobí znovu načítanie konfigurácie (''/etc/inittab'') a spustenie/zastavenie tam definovaných programov+ 
 +''init'' nie je jediný program na  
 + 
 +^ runlevel ^ popis ^ 
 +|  0  | halt / vypnutie | 
 +|  1  | Single user mode / jednouživateľský režim | 
 + 2  | Multiuser without NFS / viacuživateľský režim, bez NFS | 
 +|  3  | Full multiuser mode / plne viacuživateľský režim | 
 +|  4  | unused / nepoužívaný | 
 +|  5  | X11 / grafické prostredie X11 | 
 +|  6  | Reboot / reštartovanie | 
 +| Niektoré režimy nemusia fungovať na všetkých systémoch, alebo môžu mať odlišné čislo. Ako štandardné sa považujú 0, 1 a 6|| 
 + 
 + 
 +Spustenie systému v inej softvérovej konfigurácii umožňuje ''init'' s parametrom daného čísla runlevelu: 
 + 
 + init 6 
 + 
 +Môžnosť prepnúť systém do jednouživateľského režimu (single-user mode) zabezpečí parameter ''s''
 + 
 + init s 
 + 
 +A nakoniec, znovu načítanie konfigurácie (''/etc/inittab'') a spustenie/zastavenie tam definovaných programov
 + 
 + init c 
 + 
 +Existujú mnohé náhrady za program ''init''. Vymenujeme si iba niektoré: [[wpsk>systemd]], [[wpsk>upstart]], [[wpsk>launchd]]
  
 ===== Úloha ===== ===== Úloha =====
Riadok 111: Riadok 369:
   * za každý chybný príkaz, známka sa zhoršuje o jeden stupeň.   * za každý chybný príkaz, známka sa zhoršuje o jeden stupeň.
   * **POZOR !** Posledný príkaz na skopírovanie zoznamu použitých príkazov spúšťajte iba raz, **po odoslaní sa nedajú** opäť poslať príkazy   * **POZOR !** Posledný príkaz na skopírovanie zoznamu použitých príkazov spúšťajte iba raz, **po odoslaní sa nedajú** opäť poslať príkazy
 +
 +{{tag>linux pstree ps top kill killall nice renice at atq atrm bash free procinfo uptime reboot halt shutdown init mps}}
 +
 +~~DISQUS~~
linux/prikazy_pre_pracu_s_procesmi.txt · Posledná úprava: 2016/07/28 16:07 (externá úprava)