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