Processen Beheren

Wellicht wil je zo nu en dan de processen die onder Linux draaien bekijken. Typ ``ps -aux'' om een lijst met deze processen te krijgen, wat vergelijkbaar is met de volgende uitvoer:
USER       PID %CPU %MEM  SIZE   RSS TTY STAT START   TIME COMMAND
bin         69  0.0  1.0   788   320  ?  S   Nov 30   0:00 /usr/sbin/rpc.portmap
frampton 10273  0.0  2.1  1136   664  p0 S    14:12   0:00 -bash
frampton 10744  0.0  1.1   820   360  p0 R    17:25   0:00 ps -aux
frampton 10745  0.0  0.8   788   264  p0 S    17:25   0:00 more
nobody   10132  0.0  1.8  1016   588  ?  S    13:36   0:00 httpd
nobody   10133  0.0  1.8   988   568  ?  S    13:36   0:00 httpd
nobody   10413  0.0  1.8  1012   580  ?  S    14:56   0:00 httpd
nobody   10416  0.0  1.8  1012   580  ?  S    14:56   0:00 httpd
nobody   10418  0.0  1.8  1012   588  ?  S    14:57   0:00 httpd
nobody   10488  0.0  1.7   976   556  ?  S    15:34   0:00 httpd
nobody   10564  0.0  1.8   988   564  ?  S    16:06   0:00 httpd
nobody   10600  0.0  1.8   988   564  ?  S    16:15   0:00 httpd
nobody   10670  0.0  1.8   988   568  ?  S    16:45   0:00 httpd
nobody   10704  0.0  1.7   976   552  ?  S    17:03   0:00 httpd
root         1  0.0  1.0   776   312  ?  S   Nov 30   1:13 init [3]
root         2  0.0  0.0     0     0  ?  SW  Nov 30   0:00 (kflushd)
root         3  0.0  0.0     0     0  ?  SW  Nov 30   0:00 (kswapd)

De lijst toont je de eigenaar van het proces ("nobody" voor speciale services zoals webservers), het proces identificatie nummer, het % aan CPU-tijd dat het proces thans gebruikt, het % aan geheugen dat het proces consumeert, en andere gerelateerde informatie, als ook een beschrijving van de taak zelf.

Typ ``ps pid'' om meer informatie over een gegeven proces te krijgen (waarbij "pid" het proces-identificatie nummer is). Naar ons voorbeeld hierboven kijkend, zou "ps 10704" weergeven:

10704  ?  S     0:00 /usr/local/etc/httpd/httpd

Hiermee wordt aangegeven dat dit bepaalde proces een webserver is (de Apache webserver verschijnt meerdere malen in de lijst met processen; zie de paragraaf Web Server en HTTP Caching Proxy Beheer in Hoofdstuk 7 voor informatie over het waarom).

Als je bemerkt dat een service niet werkt, kun je gebruik maken van "kill -HUP pid" (waarbij "pid" het proces identificatienummer is dat in de lijst met processen geproduceerd door "ps" wordt getoond). Als bijvoorbeeld Internet-services (een proces genaamd inetd, in ons voorbeeld proces #123) niet werken zoals ze behoren te werken, zal het commando ``kill -HUP 123'' (of zelfs veiliger, gebruik het ``killall'' commando en geef de naam van het proces op: ``killall -HUP inetd'') het proces opnieuw opstarten. De optie -HUP van het kill-commando betekent "hang op"; het proces weet dat het verondersteld wordt zichzelf uit het geheugen te verwijderen.

Wat je nog meer zou kunnen proberen, als het je niet lukt het probleem op te lossen, zou het afsluiten en weer opnieuw opstarten van je systeem kunnen zijn (zie de paragraaf Systeem Afsluiten en Herstarten in Hoofdstuk 6 voor details).

Er zullen keren zijn dat je het wellicht nodig vindt, tijdelijk een proces te onderbreken, en de uitvoering dan later weer voort te zetten. Je draait bijvoorbeeld mogelijk een CPU-intensieve taak en wenst een op IDE gebaseerde CDRecordable te branden. Aangezien op IDE gebaseerde devices voor veel van het werk achter input/output op de CPU rekenen, zijn ze vatbaar voor bufferhonger als je CPU het te druk heeft en eindig je met een onbruikbaar bierviltje in plaats van een juist geprepareerde CD! Met de volgende twee commando's zal respectievelijk een proces worden uitgesteld en het weer worden voortgezet:

kill -STOP 945
kill -CONT 945

Red Hat voorziet in een betere manier om een aantal processen te starten en stoppen, wat hierna in de paragraaf Processen Starten en Stoppen wordt behandeld.