IMPORTANT: Per accedir als fitxer de subversion: http://acacha.org/svn (sense password). Poc a poc s'aniran migrant els enllaços. Encara però funciona el subversion de la farga però no se sap fins quan... (usuari: prova i la paraula de pas 123456)

Linux Professional Institute Certificate. LPIC-1

Lpic1 large.gif
Certificat LPIC-1
Examen: 101 (torneu a la resta de temes)
Fitxers: LPI103.5_CrearmonitoritzarMatarProcessos.pdf (LPI103.5_CrearmonitoritzarMatarProcessos.odp) , UD_8_7_admin_processos.pdf
Objectius: http://www.lpi.org/eng/certification/the_lpic_program/lpic_1/exam_101_detailed_objectives
Dipòsit SVN: https://svn.projectes.lafarga.cat/svn/lpi/Materials/Examen_101/103.5
Usuari: anonymous
Paraula de pas: qualsevol paraula de pas

Objectius del tema

103.5. Crear, monitoritzar o matar processos
Objective.jpg
  • Objectiu: Els candidats han de ser capaços de gestionar els processos a un nivell bàsic.
  • Pes: 4
060317 Icon - Theory of Knowledge v01 pdc.jpg

Àrees Clau de Coneixement:

Icon list.jpg

La següent és una llista parcial de fitxers, termes i utilitats utilitzades:

Text-editor.svg

Apunts: LPI 103.5. Crear, monitoritzar o matar processos

Definició de procés

IMPORTANT: En informàtica un procés és una instància d'una aplicació que esta essent executada per una computadora

  • Quan agafem una aplicacio i l'executem, diem que hem que hem fet un proces. Podem tenir molts de processos oberts al mateix moment, el que anomenen multi-proces.
  • El proces esta al HDD i aquest s'emmagatzema a la RAM.
  • Els processos s'executen per la CPU.
  • El SO ha de saber interpretar els processos.
  • Els processos no existeixen fins que s'activa l'aplicacio. L'aplicacio es solament es un conjunt d'instruccions.

Adjunto la teoria mes completa extreta del .pdf.

  • Una aplicació o programa és solament una col·lecció passiva d'instruccions que no esdevenen un procés fins que el programa és executat.
  • Una sola aplicació o programa pot arribar a executar múltiples processos al mateix temps
  • Linux és un sistema operatiu multitasca i també multi-proces (suport per a múltiples CPUs) i pot executar diferents processos al mateix temps
La diferencia entre multitasca i multi-proces es que el  multitasca pot exeutar varies tasques al mateix moment 
(la gran majoria de SO), i el multi-proces es que els  procesos es repaterixen per les CPU i una fa un proces 
mentre l'altra en fa un altre de diferent.
  • És possible llançar vàries instàncies d’un mateix programa simultàniament.

Elements d'un procés

Estructura de dades del SO

Els elements mes importants son:

  • Identificador del procés (PID). S'identifiquen en numeros reals, el numero 1 es el mes important, els numeros es van suman un a un.
  • Identificador del procés pare (PPID). Si el PPID mor, els fills també. La paraula per matar una aplicacio s'anomenta kill.
  • Estat del procés. Els dos estats mes importants son en espera o en execuciosi el proces s'esta executant esta a la CPU i si esta adormit o en espera, no significa que no estigui actiu sino que esta a la RAM.
  • Prioritat del procés. Pots donar prioritat a un proces per a que vagui mes rapid o mes lent, depent el que necessitis. el Linux hi ha 40 nivells de prioritat.
  • Senyals pendents de ser processades. hi ha diferents tipus de senyals. Esta la senyal de apagar que pots dir que s'apagui de forma correcta o que s'apagui de cop sense donarli la oportunitat a fer res mes amb el kill

L'identificador de procés (PID) i l'identificador de procés pare

  • tots els procesos, tal i com hem dit mes a dalt s'identifiquen amb un numero real, el PID.
  • L'encarregat de gestionar els processos és el kernel i disposa d'una taula de processos on cada procés es identificat pel seu PID.
  • Una aplicació no pot crear un procés directament!. Es necessari demanar al sistema operatiu que crei el procés i el gestioni. Es disposa de dos crides de sistema:
  • fork: permet que un procés crei un altre procés. Aquest nou procés es anomenat procés fill
  • exec: permet executar una aplicació externa. Substitueix el procés en execució per un altre procés. No confondre amb l'ordre exec.

Tipus de processos

  • Procés fill. Es una jerarquia de processos. Creats per fork
  • Procés orfe. Mates el pare abans que el fill, llavors va a parar al proces principal i l'acull un altre pare. Aquesta accio no hauria de passar mai ja que pot donar problemes. Si tenim sort el programa deixarar de funcionar i si no ens ho bloquejara tot ja que anira agafant recursos de qualsevol lloc.
  • Procés zombie. Al igual que el proces orfe es el proces que no te pare pero amb la diferencia que ningu l'acull i va agafant recursos de tot arreu, bloquejant el PC, el podem matar o parar-lo.
  • Procés parat. Parem els processos que no ens interessen en aquell moment. Per si en un moment necessitem mes recursos parem un proces i mes tard el podem tornar a deixar continuar.
  • Procés dimoni (servei). S'executa en segon terme. No te interficies d'usuari associades.

Fils d'execució vs processos

Jerarquia de processos Unix. L’arbre de processos

Unix/Linux

  • Els processos només es poden executar a partir de processos ja existents
  • Els processos acabin tenint una jerarquia (relacions pare/fill).
  • La crida de sistema que permet en Unix crear un nou procés és fork (forquilla). Fork crea un procés fill que és una còpia casi exacte del procés pare i que s'executa en paral·lel al procés pare

Conceptes importants

  • Herència: El procés hereta totes les propietats del pare (de fet és una còpia exacte del seu pare).
  • Sincronització entre processos pare i fill: Mecanismes IPC com senyals. Ajuden a que si un pare ha de morir abans que el fill, l'avisen per a que fagi el proces corresponent i quedi com a proces orfe i no com a zombie.

El nucli del sistema operatiu. scheduler

El primer procés en executar-se és el nucli (kernel)

  • És executat pel gestor d'arrancada
  • El procés del nucli que gestiona tota la resta de processos s'anomena scheduler (planificador de processos). No el podeu visualitzar (té el PID 0)


El procés init

  • És el procés pare de tota la resta de processos. PID 1. Si matem aquest programa ens carreguem tot el SO.

Vegeu l'ordre pstree

[email protected]:~$ pstree -p | head
init(1)-+-NetworkManager(787)-+-dhclient(821)
       |                     `-{NetworkManager}(824)
       |-acpid(895)
       |-apache2(1303)-+-apache2(1310)
       |               |-apache2(1312)
       |               |-apache2(1313)
       |               |-apache2(1314)
       |               `-apache2(1315)
       |-atd(912)
       |-avahi-daemon(799)---avahi-daemon(803)


Exemple per visualitzar la jerarquia de processos Linux

Echoferran.png

Estat dels processos

Vegeu l'ordre ps

Manipulació de processos

Atajos per fer ordres

  • Ctrl + Alt Gr + \ --> finalitza el proces.
  • Ctrl + C -----------> Mata el proces.
  • Ctrl + Z -----------> Atura el proces.

Com crear processos

  • Primer pla (foreground – fg): és el mode per defecte amb el qual executem ordres a l'interpret d'ordres. Les ordres bloquegen l'execució de l'interpret
  • Segon pla (background – bg): es pot fer amb el símbol & (o l'ordre bg)
  • Ens proporciona el PID
  • Es per poder gestionar el procés
@PC-IMATGE:~$ sleep 100 &
[2] 2827
[1]   Fet                     sleep 100

Executar processos en primer terme

Executar processos en segon terme

Substituir un programa en execució per un altre. Comanda exec

Control de tasques en un interpret d'ordres

Acabar un procés.

Consulteu també l'ordre kill.

Informació sobre processos: ps i pstree

ps

  • Permet consultar la taula de processos
  • Diferents implementacions de l'ordre ps. Difereixen

sobretot en la forma d'utilitzar les opcions:

  • Opcions UNIX: les opcions han d'estar totes agrupades i

han d'estar precedides per un guió (-)

  • Opcions BSD: poden estar agrupades i no utilitzen mai el

guió (-).

  • Opcions llargues de GNU: precedides per dos guions (--)


Si ho posem a la terminal sense res mes ens surt una cosa com aquesta

[email protected]:~$ ps
PID TTY          TIME CMD
2320 pts/0    00:00:00 bash
2345 pts/0    00:00:00 ps

Si volem veure tots els processos en els quals esta treballan el nostre sistema ho fem de la forma seguent:

[email protected]:~$ ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0   2940  1772 ?        Ss   11:39   0:00 /sbin/init
root         2  0.0  0.0      0     0 ?        S    11:39   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    11:39   0:00 [migration/0]
root         4  0.0  0.0      0     0 ?        S    11:39   0:00 [ksoftirqd/0]
root         5  0.0  0.0      0     0 ?        S    11:39   0:00 [watchdog/0]
root         6  0.0  0.0      0     0 ?        S    11:39   0:00 [migration/1]
root         7  0.0  0.0      0     0 ?        S    11:39   0:00 [ksoftirqd/1]
root         8  0.0  0.0      0     0 ?        S    11:39   0:00 [watchdog/1]
root         9  0.0  0.0      0     0 ?        S    11:39   0:00 [events/0]
root        10  0.0  0.0      0     0 ?        S    11:39   0:00 [events/1]
root        11  0.0  0.0      0     0 ?        S    11:39   0:00 [cpuset]
root        12  0.0  0.0      0     0 ?        S    11:39   0:00 [khelper]
root        13  0.0  0.0      0     0 ?        S    11:39   0:00 [netns]
root        14  0.0  0.0      0     0 ?        S    11:39   0:00 [async/mgr]
root        15  0.0  0.0      0     0 ?        S    11:39   0:00 [pm]
root        17  0.0  0.0      0     0 ?        S    11:39   0:00 [sync_supers]
root        18  0.0  0.0      0     0 ?        S    11:39   0:00 [bdi-default]
root        19  0.0  0.0      0     0 ?        S    11:39   0:00 [kintegrityd/0]
root        20  0.0  0.0      0     0 ?        S    11:39   0:00 [kintegrityd/1]
root        21  0.0  0.0      0     0 ?        S    11:39   0:00 [kblockd/0]
root        22  0.0  0.0      0     0 ?        S    11:39   0:00 [kblockd/1]
root        23  0.0  0.0      0     0 ?        S    11:39   0:00 [kacpid]
root        24  0.0  0.0      0     0 ?        S    11:39   0:00 [kacpi_notify]
root        25  0.0  0.0      0     0 ?        S    11:39   0:00 [kacpi_hotplug]
root        26  0.0  0.0      0     0 ?        S    11:39   0:00 [ata/0]
root        27  0.0  0.0      0     0 ?        S    11:39   0:00 [ata/1]
root        28  0.0  0.0      0     0 ?        S    11:39   0:00 [ata_aux]
root        29  0.0  0.0      0     0 ?        S    11:39   0:00 [ksuspend_usbd]
root        30  0.0  0.0      0     0 ?        S    11:39   0:00 [khubd]
root        31  0.0  0.0      0     0 ?        S    11:39   0:00 [kseriod]
root        32  0.0  0.0      0     0 ?        S    11:39   0:00 [kmmcd]
root        35  0.0  0.0      0     0 ?        S    11:39   0:00 [khungtaskd]
root        36  0.0  0.0      0     0 ?        S    11:39   0:00 [kswapd0]
root        37  0.0  0.0      0     0 ?        SN   11:39   0:00 [ksmd]
root        38  0.0  0.0      0     0 ?        S    11:39   0:00 [aio/0]
root        39  0.0  0.0      0     0 ?        S    11:39   0:00 [aio/1]
root        40  0.0  0.0      0     0 ?        S    11:39   0:00 [ecryptfs-kthr]
root        41  0.0  0.0      0     0 ?        S    11:39   0:00 [crypto/0]
root        42  0.0  0.0      0     0 ?        S    11:39   0:00 [crypto/1]
root        46  0.0  0.0      0     0 ?        S    11:39   0:00 [kstriped]
root        47  0.0  0.0      0     0 ?        S    11:39   0:00 [kmpathd/0]
root        48  0.0  0.0      0     0 ?        S    11:39   0:00 [kmpathd/1]
root        49  0.0  0.0      0     0 ?        S    11:39   0:00 [kmpath_handle]
root        50  0.0  0.0      0     0 ?        S    11:39   0:00 [ksnapd]
root        51  0.0  0.0      0     0 ?        S    11:39   0:00 [kondemand/0]
root        52  0.0  0.0      0     0 ?        S    11:39   0:00 [kondemand/1]
root        53  0.0  0.0      0     0 ?        S    11:39   0:00 [kconservative]
root        54  0.0  0.0      0     0 ?        S    11:39   0:00 [kconservative]
root       203  0.0  0.0      0     0 ?        S    11:39   0:00 [scsi_eh_0]
root       214  0.0  0.0      0     0 ?        S    11:39   0:00 [scsi_eh_1]
root       216  0.0  0.0      0     0 ?        S    11:39   0:00 [scsi_eh_2]
root       217  0.0  0.0      0     0 ?        S    11:39   0:00 [scsi_eh_3]
root       219  0.0  0.0      0     0 ?        S    11:39   0:00 [scsi_eh_4]
root       221  0.0  0.0      0     0 ?        S    11:39   0:00 [scsi_eh_5]
root       224  0.0  0.0      0     0 ?        S    11:39   0:00 [khpsbpkt]
root       228  0.0  0.0      0     0 ?        S    11:39   0:00 [usbhid_resume]
root       239  0.0  0.0      0     0 ?        S    11:39   0:00 [knodemgrd_0]
root       279  0.0  0.0      0     0 ?        S    11:39   0:00 [flush-8:0]
root       282  0.0  0.0      0     0 ?        S    11:39   0:00 [kjournald]
root       324  0.0  0.0   2312   928 ?        S    11:39   0:00 upstart-udev-br
root       326  0.0  0.0   2664  1064 ?        S<s  11:39   0:00 udevd --daemon
root       532  0.0  0.0      0     0 ?        S    11:39   0:00 [kpsmoused]
root       635  0.0  0.0      0     0 ?        S    11:39   0:00 [radeon/0]
root       637  0.0  0.0      0     0 ?        S    11:39   0:00 [radeon/1]
root       639  0.0  0.0      0     0 ?        S    11:39   0:00 [ttm_swap]
daemon     656  0.0  0.0   1892   504 ?        Ss   11:39   0:00 portmap
root       714  0.0  0.1  15312  3992 ?        Ss   11:39   0:00 smbd -F
root       726  0.0  0.0   5548  2144 ?        Ss   11:39   0:00 /usr/sbin/sshd
syslog     740  0.0  0.0  34536  1556 ?        Sl   11:39   0:00 rsyslogd -c4
102        749  0.0  0.0   3216  1556 ?        Ss   11:39   0:00 dbus-daemon --s
statd      761  0.0  0.0   3700  1412 ?        Ss   11:39   0:00 rpc.statd -L
root       764  0.0  0.1  18896  4064 ?        Ssl  11:39   0:00 NetworkManager
avahi      768  0.0  0.0   3056  1620 ?        S    11:39   0:00 avahi-daemon: r
root       769  0.0  0.0   4168  2316 ?        S    11:39   0:00 /usr/sbin/modem
root       816  0.0  0.0  15312  1212 ?        S    11:39   0:00 smbd -F
root       842  0.0  0.0      0     0 ?        S    11:39   0:00 [hd-audio0]
avahi      844  0.0  0.0   2924   548 ?        Ss   11:39   0:00 avahi-daemon: c
root       863  0.0  0.0   3772  1452 ?        S    11:39   0:00 /sbin/dhclient
root       865  0.0  0.0   4836  2324 ?        S    11:39   0:00 /sbin/wpa_suppl
root       866  0.0  0.0   1788   560 tty4     Ss+  11:39   0:00 /sbin/getty -8
root       877  0.0  0.0   1788   572 tty5     Ss+  11:39   0:00 /sbin/getty -8
root       884  0.0  0.0   1788   568 tty2     Ss+  11:39   0:00 /sbin/getty -8
root       885  0.0  0.0   1788   568 tty3     Ss+  11:39   0:00 /sbin/getty -8
root       888  0.0  0.0   1788   572 tty6     Ss+  11:39   0:00 /sbin/getty -8
root       892  0.0  0.0   2044   860 ?        Ss   11:39   0:00 acpid -c /etc/a
root       904  0.0  0.0   2372   900 ?        Ss   11:39   0:00 cron
daemon     905  0.0  0.0   2244   428 ?        Ss   11:39   0:00 atd
root       932  0.0  0.0 109348  1568 ?        Ssl  11:39   0:00 /usr/sbin/nscd
root       946  0.0  0.0      0     0 ?        S    11:39   0:00 [phy0]
mysql      956  0.0  0.7 156548 22412 ?        Ssl  11:39   0:00 /usr/sbin/mysql
root      1015  0.0  0.1  19384  3320 ?        Ssl  11:39   0:00 gdm-binary
root      1020  0.0  0.1  20776  3272 ?        Sl   11:39   0:00 /usr/sbin/conso
root      1101  0.0  0.1  21060  3788 ?        Sl   11:39   0:00 /usr/lib/gdm/gd
root      1130  0.0  0.0  11732  1396 ?        Ss   11:39   0:00 /usr/sbin/winbi
root      1132  0.0  0.0  11732  1184 ?        S    11:39   0:00 /usr/sbin/winbi
root      1148  0.0  0.0   2352   300 ?        Ss   11:39   0:00 /sbin/mdadm --m
root      1169  0.0  0.0   7344  2536 ?        Ss   11:39   0:00 /usr/sbin/cupsd
root      1186  0.0  0.0   2660  1028 ?        S<   11:39   0:00 udevd --daemon
root      1196  0.0  0.0   2660   952 ?        S<   11:39   0:00 udevd --daemon
root      1292  0.0  0.0      0     0 ?        S    11:39   0:00 [rpciod/0]
root      1293  0.0  0.0      0     0 ?        S    11:39   0:00 [rpciod/1]
root      1294  0.0  0.2  36704  7828 ?        Ss   11:39   0:00 /usr/sbin/apach
root      1299  0.0  0.0      0     0 ?        S    11:39   0:00 [nfsiod]
www-data  1311  0.0  0.1  36704  3868 ?        S    11:39   0:00 /usr/sbin/apach
root      1312  0.0  0.0      0     0 ?        S    11:39   0:00 [lockd]
www-data  1313  0.0  0.1  36704  3868 ?        S    11:39   0:00 /usr/sbin/apach
www-data  1314  0.0  0.1  36704  3868 ?        S    11:39   0:00 /usr/sbin/apach
www-data  1315  0.0  0.1  36704  3868 ?        S    11:39   0:00 /usr/sbin/apach
www-data  1316  0.0  0.1  36704  3868 ?        S    11:39   0:00 /usr/sbin/apach
root      1325  6.6  0.8  36148 25840 tty7     Ss+  11:39   0:54 /usr/bin/X :0 -
root      1439  0.0  0.0   8668  1680 ?        Ss   11:39   0:00 nmbd -D
gdm       1458  0.0  0.0   3380   744 ?        S    11:39   0:00 /usr/bin/dbus-l
root      1475  0.0  0.0   5516  2780 ?        S    11:39   0:00 /usr/lib/upower
rtkit     1481  0.0  0.0  22904  1096 ?        SNl  11:39   0:00 /usr/lib/rtkit/
root      1485  0.0  0.1   6736  3912 ?        S    11:39   0:00 /usr/lib/policy
108       1522  0.0  0.1  17028  4248 ?        Ssl  11:39   0:00 /usr/sbin/hald
root      1523  0.0  0.0   3532  1292 ?        S    11:39   0:00 hald-runner
root      1546  0.0  0.0   3608  1248 ?        S    11:39   0:00 hald-addon-inpu
root      1549  0.0  0.0   3608  1236 ?        S    11:39   0:00 /usr/lib/hal/ha
root      1550  0.0  0.0   3608  1232 ?        S    11:39   0:00 /usr/lib/hal/ha
108       1558  0.0  0.0   3628  1024 ?        S    11:39   0:00 hald-addon-acpi
root      1559  0.1  0.0   3612  1244 ?        S    11:39   0:00 hald-addon-stor
root      1563  0.0  0.0   3612  1240 ?        S    11:39   0:00 hald-addon-stor
root      1578  0.0  0.1  22388  3800 ?        Sl   11:40   0:00 /usr/lib/gdm/gd
alumne    1586  0.0  0.2  44816  7328 ?        Sl   11:40   0:00 /usr/bin/gnome-
alumne    1604  0.0  0.2  26524  7004 ?        Ssl  11:40   0:00 gnome-session
alumne    1638  0.0  0.0   3280   352 ?        Ss   11:40   0:00 /usr/bin/ssh-ag
alumne    1641  0.0  0.0   3380   736 ?        S    11:40   0:00 /usr/bin/dbus-l
alumne    1642  0.0  0.0   3524  1516 ?        Ss   11:40   0:00 /bin/dbus-daemo
alumne    1645  0.0  0.1   8048  4532 ?        S    11:40   0:00 /usr/lib/libgco
alumne    1652  0.1  0.3  90088  9968 ?        Ss   11:40   0:00 /usr/lib/gnome-
alumne    1654  0.0  0.0   6464  2232 ?        S    11:40   0:00 /usr/lib/gvfs/g
alumne    1659  0.0  0.0  30276  2468 ?        Ssl  11:40   0:00 /usr/lib/gvfs//
alumne    1663  0.9  0.8  72872 25624 ?        S    11:40   0:07 compiz
alumne    1666  0.0  0.1  95504  4804 ?        S<sl 11:40   0:00 /usr/bin/pulsea
alumne    1673  0.1  0.5  54088 16108 ?        S    11:40   0:00 gnome-panel
alumne    1674  0.1  0.4  72932 12108 ?        S    11:40   0:00 nm-applet --sm-
alumne    1675  0.0  0.2  18936  6272 ?        S    11:40   0:00 /usr/lib/policy
alumne    1679  0.0  0.0  10844  2880 ?        S    11:40   0:00 /usr/lib/pulsea
alumne    1680  0.5  1.1 118472 35436 ?        Sl   11:40   0:04 nautilus
alumne    1681  0.0  0.2  19964  7880 ?        S    11:40   0:00 bluetooth-apple
alumne    1686  0.0  0.0   1828   568 ?        S    11:40   0:00 /bin/sh /usr/bi
alumne    1689  0.0  0.2  20652  8084 ?        S    11:40   0:00 gnome-power-man
alumne    1694  0.0  0.1   8104  3344 ?        S    11:40   0:00 /usr/lib/gvfs/g
root      1699  0.0  0.1  15652  3060 ?        Sl   11:40   0:00 /usr/lib/udisks
root      1700  0.0  0.0   5184   876 ?        S    11:40   0:00 udisks-daemon: 
alumne    1713  0.0  0.0  16952  2372 ?        Sl   11:40   0:00 /usr/lib/gvfs/g
alumne    1716  0.0  0.0   7124  2384 ?        S    11:40   0:00 /usr/lib/gvfs/g
alumne    1725  0.0  0.0   3736  1184 ?        S    11:40   0:00 avahi-publish-s
alumne    1727  0.4  1.2 181932 35688 ?        Ssl  11:40   0:03 /home_local/alu
alumne    1761  0.2  0.5  63260 15520 ?        Sl   11:40   0:01 ica -noshm -isd
alumne    1779  0.0  0.1   7256  3012 ?        S    11:40   0:00 /usr/lib/gvfs/g
alumne    1781  0.0  0.1  42180  3572 ?        Ssl  11:40   0:00 /usr/lib/bonobo
alumne    1791  0.1  0.4  51924 13684 ?        S    11:40   0:01 /usr/lib/gnome-
alumne    1792  0.0  0.3  49848 11480 ?        S    11:40   0:00 /usr/lib/gnome-
alumne    1807  0.0  0.0   6820  2364 ?        S    11:40   0:00 /usr/lib/gvfs/g
alumne    1808  0.0  0.0  18224  2880 ?        Ss   11:40   0:00 gnome-screensav
alumne    1809  0.0  0.0   1828   516 ?        Ss   11:40   0:00 /bin/sh -c /usr
alumne    1810  0.0  0.3  21204 10252 ?        S    11:40   0:00 /usr/bin/gtk-wi
alumne    1817  0.0  0.5  43572 17184 ?        S    11:40   0:00 /usr/bin/ica -r
alumne    1820  0.0  0.6  60736 20640 ?        S    11:40   0:00 /usr/bin/python
alumne    1837  0.3  0.3  23732  9108 ?        S    11:40   0:02 /usr/lib/gnome-
alumne    1838  0.0  0.3  24040  9152 ?        S    11:40   0:00 /usr/lib/gnome-
alumne    1841  0.0  0.4  60140 13280 ?        S    11:40   0:00 /usr/lib/indica
alumne    1843  0.0  0.4  32496 13876 ?        S    11:40   0:00 /usr/lib/gnome-
alumne    1845  0.0  0.3  23780  9148 ?        S    11:40   0:00 /usr/lib/gnome-
alumne    1846  0.0  0.4  60364 13388 ?        S    11:40   0:00 /usr/lib/indica
alumne    1858  0.0  0.3  47464 11752 ?        S    11:40   0:00 /usr/lib/notify
alumne    1864  0.0  0.2  19544  7496 ?        S    11:40   0:00 /usr/lib/gnome-
alumne    1877  0.0  0.0   6440  2200 ?        S    11:40   0:00 /usr/lib/gvfs/g
alumne    1887  0.0  0.1  18220  4416 ?        S    11:40   0:00 /usr/lib/indica
alumne    1889  0.0  0.1  85140  4572 ?        S    11:40   0:00 /usr/lib/indica
alumne    1891  0.0  0.1  24300  4244 ?        S    11:40   0:00 /usr/lib/indica
alumne    1894  0.0  0.1  19068  4876 ?        S    11:40   0:00 /usr/lib/indica
alumne    1896  0.0  0.1  18184  4784 ?        S    11:40   0:00 /usr/lib/indica
alumne    1914  0.0  0.3  69008 11712 ?        Sl   11:40   0:00 /usr/lib/evolut
alumne    1916  0.0  0.5  32296 15504 ?        S    11:40   0:00 python /usr/sha
alumne    1932  0.0  0.3  44500 11548 ?        Sl   11:40   0:00 /usr/lib/evolut
alumne    1937  0.0  0.2  79208  8852 ?        Sl   11:40   0:00 /usr/lib/evolut
alumne    1969  0.3  0.6  31808 18688 ?        Sl   11:40   0:02 /usr/bin/python
alumne    2030  5.0  2.9 340756 88416 ?        Sl   11:41   0:35 /opt/google/chr
alumne    2034  0.0  0.1  80584  4528 ?        S    11:41   0:00 /opt/google/chr
alumne    2036  0.0  0.3 111024 10908 ?        S    11:41   0:00 /opt/google/chr
alumne    2038  0.0  0.1 1069036 3584 ?        S    11:41   0:00 /opt/google/chr
alumne    2068  0.0  0.7 147212 23092 ?        Sl   11:41   0:00 /opt/google/chr
alumne    2076  0.0  0.7 147212 23048 ?        Sl   11:41   0:00 /opt/google/chr
alumne    2086  0.0  0.4  47672 11924 ?        S    11:41   0:00 update-notifier
root      2094  0.0  0.2  13680  7924 ?        S    11:41   0:00 /usr/bin/python
alumne    2112  0.9  1.4 170280 43044 ?        Sl   11:42   0:06 /opt/google/chr
alumne    2245  2.4  3.2 225160 97160 ?        Sl   11:45   0:11 /usr/lib/openof
alumne    2318  0.2  0.4  57360 13692 ?        Sl   11:50   0:00 gnome-terminal
alumne    2319  0.0  0.0   2196   508 ?        S    11:50   0:00 gnome-pty-helpe
alumne    2320  0.1  0.1   6296  3560 pts/0    Ss   11:50   0:00 bash
root      2338  0.0  0.0   1788   572 tty1     Ss+  11:50   0:00 /sbin/getty -8
alumne    2351  0.0  0.0   2712   948 pts/0    R+   11:53   0:00 ps aux


PID, Identificador de proces %CPU, és (o era) el tant per cent de CPU ocupada pel procés en el moment que vam executar ps %MEM,és el percentatge de memòria que el programa està (o millor dit estava) consumint durant l'execució de ps VSZ, RSS, TTY,el codi que identifica la terminal on s'està executant el procés. Els dimonis (serveis Linux), són processos especials que no tenen cap terminal associada ( “?”) STAT, START,mostra l'estat del procés. TIME,indica el total de temps acumulat de CPU COMAND,


Estat dels processos

Estatdeprocessosferran.png

Exemple

Ara desde la terminal matarem el firefox de la forma següent:

  • busquem el codi del programa que volem matar.
ps aux | grep "firefox"
  • Matem la aplicacio de forma directa, es a dir, no li donem cap altra possiblitat que no sigui morir (amb el -9 no li donem cap altra opcio, sense el -9 podria dirnos de guardar o alguna altra cosa.
kill -9 2923

Mata2ferran.png


Top

Mostra els processos ordenats per percentatge d'ús de CPU (de més a menys) i de forma continuada:

$ top
top - 12:52:43 up 7 min,  2 users,  load average: 0.47, 0.61, 0.34
Tasks: 198 total,   3 running, 195 sleeping,   0 stopped,   0 zombie
Cpu(s):  4.3%us,  2.6%sy,  0.0%ni, 93.1%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   2965596k total,  1076324k used,  1889272k free,   119704k buffers
Swap:  1952760k total,        0k used,  1952760k free,   469292k cached
PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                         
2266 alumne    20   0 55140  19m  15m S    7  0.7   0:15.59 gnome-system-mo                                                                                 
1335 root      20   0 53592  23m 9328 S    4  0.8   0:46.36 Xorg                                                                                            
2352 alumne    20   0 57764  13m  10m R    2  0.5   0:00.33 gnome-terminal                                                                                  
1662 alumne    20   0 72856  24m 7892 S    1  0.9   0:05.16 compiz                                                                                          
2296 alumne    20   0  224m  99m  62m S    1  3.4   0:11.76 soffice.bin                                                                                     
1716 alumne    20   0  177m  35m  14m S    0  1.2   0:03.34 dropbox                                                                                         
1784 alumne    20   0 20992 9.8m 8108 S    0  0.3   0:00.41 gtk-window-deco                                                                                 
1791 alumne    20   0 51236  13m  10m S    0  0.5   0:01.32 wnck-applet                                                                                     
1823 alumne    20   0 23732 9412 7704 S    0  0.3   0:01.75 geyes_applet2                                                                                   
2370 alumne    20   0  2544 1144  844 R    0  0.0   0:00.03 top                                                                                             
   1 root      20   0  2916 1788 1216 S    0  0.1   0:00.52 init                                                                                            
   2 root      20   0     0    0    0 S    0  0.0   0:00.00 kthreadd                                                                                        
   3 root      RT   0     0    0    0 S    0  0.0   0:00.00 migration/0                                                                                     
   4 root      20   0     0    0    0 S    0  0.0   0:00.01 ksoftirqd/0                                                                                     
   5 root      RT   0     0    0    0 S    0  0.0   0:00.00 watchdog/0                                                                                      
   6 root      RT   0     0    0    0 S    0  0.0   0:00.00 migration/1                                                                                     
   7 root      20   0     0    0    0 S    0  0.0   0:00.00 ksoftirqd/1                                                                                     
   8 root      RT   0     0    0    0 S    0  0.0   0:00.00 watchdog/1                                                                                      
   9 root      20   0     0    0    0 R    0  0.0   0:00.07 events/0                                                                                        
  10 root      20   0     0    0    0 S    0  0.0   0:00.17 events/1                                                                                        
  11 root      20   0     0    0    0 S    0  0.0   0:00.00 cpuset                                                                                          
  12 root      20   0     0    0    0 S    0  0.0   0:00.00 khelper                                                                                         
  13 root      20   0     0    0    0 S    0  0.0   0:00.00 netns                                                                                           
  14 root      20   0     0    0    0 S    0  0.0   0:00.00 async/mgr                                                                                       
  15 root      20   0     0    0    0 S    0  0.0   0:00.00 pm                                                                                              
  17 root      20   0     0    0    0 S    0  0.0   0:00.00 sync_supers                                                                                     
  18 root      20   0     0    0    0 S    0  0.0   0:00.00 bdi-default                                                                                     
  19 root      20   0     0    0    0 S    0  0.0   0:00.00 kintegrityd/0                                                                                   
  20 root      20   0     0    0    0 S    0  0.0   0:00.00 kintegrityd/1            

Conky

Instalem el conky desde la terminal

$ sudo apt-get install conky

L'executem:

$ conky

I ens apareixera a la pantalla un quadre on veurem tots els processos que es duen a terme al nostre sistema

Conkyferran.png

Ens surtira per defecte a la banda superior esquerra, si el volem moure, veurem que am el ratoli no podem, ho hem de fer de la forma seguent.

$ sudo gedit /etc/conky/conky.conf

S'obrira un document on veurem algunes de les seves propietats i si volem podem canviar-ne algunes per provar com funciona.

Abans

Conkyprop.png

Despres

Conkyprop2.png

Hem canviat la posicio del quadre i el color de la lletra i queda de la forma següent:

Conkydespres.png

pstree

Senyals

Enviant senyals a processos : kill, killall i top

   * 9.2 kill, killall
         o 9.2.1 xkill
   * 9.3 top
   * 9.4 Alternatives a top
         o 9.4.1 htop
         o 9.4.2 atop

Prioritat dels processos

Exemples

Executar un programa abans de l'execució de cada comanda (execució de l'interpret d'ordres)

Ordres

ps

top

kill

killall

pidof

htop

atop

jobs

bg

fg

nohup

free

uptime

watch

Variables de shell i d'entorn

$$

$?

$PPID