[Python] MAC e python

Giampaolo Rodolà g.rodola a gmail.com
Ven 1 Giu 2012 12:18:58 CEST


Il 31 maggio 2012 19:00, enrico franchi <enrico.franchi a gmail.com> ha scritto:
> 2012/5/31 Giampaolo Rodolà <g.rodola a gmail.com>:
>
>> Idem per psutil. La quantità di bug relativi a OSX sono la maggioranza:
>> http://code.google.com/p/psutil/issues/list?can=1&q=label%3AOpSys-OSX&colspec=ID+Summary+Type+Opsys+Status+Milestone+Opened+Owner+Progress&cells=tiles
>> Quello più segnalato è il fatto che per interrogare qualunque processo
>> che non sia il proprio (os.getpid()) da OSX 10.5 in avanti devi essere
>> root (l'unico UNIX a farlo).
>> Uniche fix: suid sull'interprete python o buttare OSX nel cesso.
>
> Mi fai un esempio concreto di una cosa che non dovrei essere riuscito a fare?
>
>>>> processes = psutil.get_process_list()
>>>> root_processes = [p for p in processes if p.username != 'enrico']
>>>> p = root_processes[-1]
>>>> p.get_children()
> [<psutil.Process(pid=1) at 4313276368>, <psutil.Process(pid=0,
> name='kernel_task') at 4313276304>]
>
>
> ls -l `which python`
> -rwxrwxr-x  1 enrico  staff  8784 May 31 19:02
> /Users/enrico/src/psutil-test/bin/python
>
> Sotto viene chiamato questo:
> ls -l /Library/Frameworks/EPD64.framework/Versions/7.2/bin/python
> -rwxrwxr-x  2 root  wheel  8784 Jan 13 18:14
> /Library/Frameworks/EPD64.framework/Versions/7.2/bin/python

In questo momento non ho un OSX sotto mano ma in genere quello che
riesci a ottenere è nome del processo, parent pid (che è usato da
get_children() nel tuo esempio) e poche altre informazioni.
Altre info relative alla memoria (get_memory_info()), cmdline, e
persino i tempi di CPU (per calcolare l'utilizzo percentuale)
dovrebbero richiedere root.
http://code.google.com/p/psutil/issues/detail?id=215
http://code.google.com/p/psutil/issues/detail?id=108
http://code.google.com/p/psutil/issues/detail?id=106

Non a caso "ps" su OSX gira con suid.
Qui viene descritto il problema:
http://psutil.googlecode.com/issues/attachment?aid=7360485559905024215&name=task_for_pid_signing.pdf&token=qa3FQnumrJFP702cgO5nhq-_JfE%3A1338545731342

--- Giampaolo
http://code.google.com/p/pyftpdlib/
http://code.google.com/p/psutil/
http://code.google.com/p/pysendfile/


Maggiori informazioni sulla lista Python