getting properly one subprocess output

Jon Clements joncle at googlemail.com
Wed Nov 18 11:28:28 EST 2009


On Nov 18, 4:14 pm, Jon Clements <jon... at googlemail.com> wrote:
> On Nov 18, 11:25 am, Jean-Michel Pichavant <jeanmic... at sequans.com>
> wrote:
>
>
>
> > Hi python fellows,
>
> > I'm currently inspecting my Linux process list, trying to parse it in
> > order to get one particular process (and kill it).
> > I ran into an annoying issue:
> > The stdout display is somehow truncated (maybe a terminal length issue,
> > I don't know), breaking my parsing.
>
> > import subprocess
> > commandLine = ['ps', '-eo "%p %U %P %y %t %C %c %a"']
> > process = subprocess.Popen(commandLine, stdout=subprocess.PIPE,
> > stderr=subprocess.PIPE)
> > processList, stderrdata = process.communicate()
>
> > Here is a sample of what I get in processList.split('\n'):
>
> >  ' "25487 1122      4344 ?         7-17:48:32  2.5 firefox-bin    
> > /usr/lib/iceweasel/firefox-"',
> >  ' "25492 1122      4892 pts/6          00:08 57.2 ipython        
> > /usr/bin/python /usr/bin/ip"',
>
> > As you can see, to complete process command line is truncated.
> > Any clue on how to get the full version ?
>
> > JM
>
> > (python 2.5)
>
> What about "ps -eo pid,tty,cmd" ?
>
> Sample:
> 12680 ?        geany /usr/share/gramps/ReportBase/
> _CommandLineReport.py
> 12682 ?        gnome-pty-helper
> 12683 pts/0    /bin/bash
> 13038 ?        gnome-terminal
> 13039 ?        gnome-pty-helper
> 13040 pts/1    bash
> 13755 pts/1    ps -eo pid,tty,cmd
>
> ...etc...
>
> hth,
>
> Jon.

Another thought: if you're only wanting to find and kill a process,
what about pkill? Saves you having to filter the list in Python and
then issue a kill command.

Jon.



More information about the Python-list mailing list