glug: TUX e Debian

robang robang@libero.it
Ven 28 Maggio 2004 09:53:59 CEST


s.sartini ha scritto:

> Ciononostante ti sei sentito in dovere (...) di farlo, forse per 
> bullarti della tua saggezza nel maneggiare il bashrc (la prossima 
> volta suppongo che ci delizierai con un tutorial sul ps -aux...)

lo sapevi che esiste una directory di nome /proc

[root@wsraf root]# cd /proc

in cui ci sono un sacco di directory con dei numeri? sai cosa sono quei 
numeri?

[root@wsraf proc]# ls
1/     3587/  3898/  4485/  5102/  5144/  5256/  8/         execdomains  
meminfo     sysrq-trigger
118/   3612/  3899/  4486/  5104/  5146/  5265/  9/         fb           
misc        sysvipc/
129/   3636/  3910/  4487/  5106/  5149/  5271/  acpi/      filesystems  
modules     tty/
135/   3649/  4/     4488/  5109/  5150/  5332/  asound/    fs/          
mounts@     uptime
2/     3669/  4069/  4526/  5110/  5155/  5567/  buddyinfo  ide/         
mtrr        version
2857/  3707/  4102/  4694/  5119/  5156/  5651/  bus/       interrupts   
net/        vmstat
2970/  3745/  4103/  4695/  5121/  5170/  5686/  cmdline    iomem        
partitions
2994/  377/   4104/  4696/  5122/  5174/  5689/  config.gz  ioports      pci
3/     3852/  4260/  4697/  5124/  5202/  5725/  cpufreq    irq/         
scsi/
3012/  3892/  4285/  4698/  5125/  5203/  592/   cpuinfo    kallsyms     
self@
3071/  3893/  4323/  4699/  5127/  5208/  593/   crypto     kcore        
slabinfo
3438/  3894/  4334/  5/     5130/  5209/  594/   devices    kmsg         
splash
3502/  3895/  4476/  5006/  5134/  5241/  597/   diskstats  loadavg      
stat
3536/  3896/  4477/  5084/  5135/  5250/  6/     dma        locks        
swaps
3537/  3897/  4484/  5099/  5140/  5255/  7/     driver/    mdstat       
sys/

quei numeri sono i PID (process identification) ognuno dei quali 
individua uno specifico processo che gira sulla tua macchina, ad esempio 
il primo processo è

[root@wsraf proc]# cd 1

 dentro questa directory sono contenuti file e link

[root@wsraf 1]# ls
auxv     cwd@     exe@  maps  mounts  stat   status  wchan
cmdline  environ  fd/   mem   root@   statm  task/

ad esempio il link exe permette di sapere a quale file eseguibile si 
riferisce quel processo

[root@wsraf 1]# ls -al exe
lrwxrwxrwx  1 root root 0 mag 28 08:45 exe -> /sbin/init*

nel caso scelto è init il padre di tutti i processi (per questo porta il 
numero 1) ma ci sono anche file veri e propri come quelli che contengono 
le statistiche di uso, di memoria, etc, etc. Scommetto che ora non ti è 
difficile capire che cosa fa il comando ps... semplicemente va a leggere 
in quel /proc/[1-9]* ed organizza le informazioni nel formato 
specificato dalle opzioni che gli passi

[root@wsraf 1]# cat st
stat    statm   status
[root@wsraf 1]# cat stat
1 (init) S 0 0 0 0 -1 256 194 581578 18 590 0 319 1007 368 16 0 1 0 94 
1617920 129 4294967295 134512640 134539204 3221225184 3221223872 
4294960144 0 0 1475401980 671819267 3222659254 0 0 0 0 0 0
[root@wsraf 1]# cat status
Name:   init
State:  S (sleeping)
SleepAVG:       90%
Tgid:   1
Pid:    1
PPid:   0
TracerPid:      0
Uid:    0       0       0       0
Gid:    0       0       0       0
FDSize: 32
Groups:
VmSize:     1580 kB
VmLck:         0 kB
VmRSS:       516 kB
VmData:      152 kB
VmStk:         4 kB
VmExe:        28 kB
VmLib:      1376 kB
Threads:        1
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000000000
SigIgn: ffffffff57f0d8fc
SigCgt: 00000000280b2603
CapInh: 0000000000000000
CapPrm: 00000000ffffffff
CapEff: 00000000fffffeff

infine ti segnalo che anche l'opzione f è spesso utile ma più ancora di 
tutto in concomitanza con ps che si usa quasi sempre da console e 
manualmente esistono altri due comandi che è molto più facile integrare 
negli scripts e sono kill e pgrep.

Spero di averti accontentato.

Ciao,
/roberto





Maggiori informazioni sulla lista glug