Uživatelské nástroje

Nástroje pro tento web


procesy-a-ulohy

Procesy a úlohy


PROCESY
pstree zobrazí hierarchický strom procesů podle abecedy, -n podle číselných hodnot, -p vypíše PID, -u vypíše uživatele
ps zobrazí statický seznam běžících procesů přihlášeného uživatele na daném terminálu (PID - identifikační číslo procesu, TTY - terminál, ze kterého byl proces spuštěn (znak „?“ znamená, že proces není vázán na žádný terminál), TIME - čas, po který byl proces zpracováván procesorem, CMD - příkaz či proces a jeho parametry), -e všechny procesy všech uživatelů, -f podrobný výpis (navíc zobrazí UID - uživatele, jenž proces spustil, PPID - rodičovský proces daného procesu, C - využití procesoru, STIME - čas spuštění procesu), -l úplný výpis (navíc zobrazí F - příznak procesu (0 - bežný proces, 1 - rozvětvený, ale nespuštěný proces, 4 - proces běžící s právy roota, 5 - kombinace předchozích hodnot), S - stav procesu („R“ běžící proces, „S“ spící proces, „T“ pozastavený proces, „Z“ zombie proces - jeho rodičovský proces byl nestandardně ukončen, „<“ proces s vysokou prioritou, „N“ proces s nízkou prioritou), C - vytížení procesoru v %, PRI - prioritu procesu, NI - hodnotu priority zadanou příkazem „nice“, SZ - celkovou velikost paměti v blocích, kterou proces zabírá, WCHAN - adresa funkce jádra, kde proces čeká na určitou událost (u běžícího procesu je „-“)), -p <PID> daný proces, -C <program> procesy daného programu, -U <uzivatel / UID> procesy daného uživatele, -G <skupina / GID> procesy dané skupiny, -t <terminal> procesy na daném terminálu, a procesy všech uživatelů, r všechny běžící procesy, u úplný a přehledný výpis, x všechny procesy, -Z vypíše bezpečnostní nastavení v rámci SElinuxu
$ ps -ef | grep sshd
$ ps -lt pts/1
$ ps -p $$
(vypíše aktuální shell)
top zobrazí podrobný, interaktivní seznam všech běžících procesů včetně využití procesoru, paměti a swapu (výpis se mění podle aktuálního stavu), -u <uzivatel> procesy daného uživatele, -p <PID> pouze určitý proces, q ukončí program
pidof <jmeno_procesu> zobrazí PID daného procesu
nice
nice (-n) <priorita> <prikaz>
vypíše standardní hodnotu priority procesu (obvykle 0)
spustí proces se změněnou prioritou (parametr „priorita“ uvádí hodnotu, která se odečte nebo přičte ke standardní hodnotě, pokud se vynechá, hodnota se automaticky sníží o 10; priorita se udává v rozmezí -20 až 20, čím nižší číslo, tím vyšší priorita, záporné hodnoty smí nastavit pouze root)
$ nice -15 rm -rf ~/tmp/*
(sníží prioritu procesu o 15)
# nice --15 ls /etc | cpio -ov > /dev/rmt0
(zvýší prioritu procesu o 15)
renice (-n) <priorita> změní prioritu běžícího procesu (hodnota priority se zadává v absolutním tvaru), (-p) <PID> daného procesu, -u <uzivatel> všechny procesy daného uživatele, -g <skupina> procesy dané skupiny
# renice +5 987
# renice -20 -u root
(zvýší prioritu všech procesů uživatele root na maximum)
# renice +20 -g users
(sníží prioritu všech procesů skupiny users na minimum)
kill (<signal>) <PID> / %<cislo_ulohy> ukončí daný proces standardním způsobem (vyšle signál 15 - SIGTERM), -9 ukončí proces ihned (signál SIGKILL), -1 ukončí proces, u démonů znovu načte jejich konfigurační soubor (signál SIGHUP), -l vypíše seznam všech signálů
$ kill -9 2051
$ kill -SIGTERM 2572
$ kill %3
killall (<signal>) <jmeno_procesu> ukončí daný proces podle jména (vhodné zvlášť při více spuštěných procesech jednoho programu), -l vypíše seznam všech signálů, -u <uzivatel> ukončí procesy daného uživatele
fuser <soubor / zarizeni> vypíše procesy používající daný soubor / zařízení, -m připojený SS, -u vypíše vlastníka procesu, -k ukončí proces, -i potvrzení k provedení operace, -v podrobný výpis
$ fuser -kimv /dev/cdrom
rpcinfo (<IP_adresa / jmeno_pocitace>) -p vypíše RPC služby (jejich identifikační číslo, verzi, protokol, port a název) běžící pod správou portmapperu na daném či lokálním počítači; seznam všech RPC programů je uveden v /etc/rpc


ÚLOHY
jobs vypíše pozastavené úlohy a úlohy běžící na pozadí, -l včetně PID, -n výpis změn od předešlého spuštění
<prikaz> & spustí úlohu na pozadí
fg %<cislo_ulohy> přesune úlohu do popředí
bg %<cislo_ulohy> přesune úlohu do pozadí (nejdřív se pozastaví ctrl+z)
nohup <prikaz> spustí daný příkaz tak, že je odolný vůči signálu SIGHUP (běží i po odhlášení uživatele); výstup příkazu se ukládá do souboru „nohup.out“ v pracovním adresáři
# nohup find /tmp -name core -print > core.txt &
watch <prikaz> spustí daný příkaz opakovaně v pravidelných intervalech 2 sekund, -n <n> každých n sekund, -d zvýrazní změny na výstupu, ctrl+c ukončí program
$ watch -d iostat
wait (<PID> / %<cislo_ulohy>) čeká na ukončení daného procesu či úlohy běžící na pozadí aktuálního shellu, pak zanikne; vrátí návratový kód posledního procesu, pokud proces neexistuje, vrátí kód „127“; není-li argument uveden, čeká na ukončení všech procesů běžících na pozadí daného shellu a návratový kód je „0“
$ wait $! && echo „OK“ || echo „KO“
sleep <pocet>(<jednotka_casu>) nastaví časový interval v sekundách, během něhož nedochází k žádné aktivitě (vhodné zejména je-li třeba zajistit určitou časovou prodlevu před spuštěním následujícího příkazu), m minutách, h hodinách, d dnech
$ sleep 10 && echo "Uplynulo 10 sekund."
at <cas> (<datum>) (<prirustek>) <prikaz> spustí úlohu jednorázově v uvedený čas, -f <soubor> čte příkazy z daného souboru, -l viz příkaz „atq“, -m odešle uživateli mail o výsledku vykonané úlohy
$ at 20:00 25.06.2007 / at 7am today + 3 weeks <-'
at> mail root < nabidka.txt <-'
at> ctrl+d
$ at -mf seznam 20:00 25.06.2007
atq / at -l vypíše seznam naplánovaných úloh (číslo úlohy, čas spuštění, jméno uživatele, jenž úlohu zadal)
atrm / at -d <cislo_ulohy> zruší naplánovanou úlohu
lpr <soubor> tiskne soubor, -P <nazev_tiskarny> určí tiskárnu, -# <n> určí počet kopií
lpq vypíše úlohy čekající v tiskové frontě, -a úlohy u všech tiskáren, -l podrobný výpis
lprm <cislo_ulohy> / - odstraní danou úlohu z tiskové fronty / celou frontu
crontab (<soubor>) nastaví existující soubor pro opakované spouštění daných úloh prostřednictvím démona „cron“, -e vytvoří či edituje crontabový soubor, -l vypíše obsah souboru, -r smaže soubor, -u <uzivatel> nastaví soubor daného uživatele (pouze root); v souboru se úlohy uvádí každá na zvláštní řádek, který se u uživatelských souborů skládá z 6 polí oddělených mezerami - 5 pro zadání času (v pořadí minuta, hodina, den v měsíci, měsíc a den v týdnu (ne - so = 0 - 6), „*“ vyhovuje všem hodnotám, „*/“<n> každý n-tý časový interval, „,“ odděluje hodnoty téhož pole, „-“ značí rozsah hodnot) a 1 pro příkaz samotný (pro zadání příkazu se používá absolutní cesta, nejde-li o vestavěný příkaz nebo klíčové slovo shellu, má-li nějaký výstup, odešle se uživateli mailem); prázdný řádek a řádek uvozený znakem „#“ se ignoruje; mezi systémové soubory patří /etc/crontab a soubory umístěné v /etc/cron.d, které obsahují 1 pole navíc mezi časovým zadáním a příkazem - uživatele, pod kterým se má daná úloha spustit; soubory uživatelů se nachází ve /var/spool/cron/<uzivatel>; oprávnění uživatelé jsou uvedeni /etc/cron.allow, neoprávnění uživatelé v /etc/cron.deny, existují-li oba soubory, /etc/cron.deny se ignoruje
30 8 * * * /usr/bin/tail -20 /var/log/messages
(spustí úlohu každý den v 8:30)
*/30 8-16 * * 1-5 /usr/bin/who >> /tmp/users.out
(spustí úlohu každých 30 min v pracovní době)
0 22 * * 5 /usr/local/scripts/muj_backup.sh
(spusti skript každý pátek ve 22:00)
0 0 1 * * for file in $(/bin/find /web -name error_log -o -name access_log); do /bin/cat /dev/null > $file; done
(na začátku každého měsíce smaže dané logy)
Poslední úprava: 2015/08/05 11:38 autor: Miroslav Bernát

Nástroje pro stránku

počet návštěv: