[Cascavel-pm] descobrir usuário dono do processo

Frederico Recsky frederico em gmail.com
Segunda Junho 18 18:29:06 PDT 2007


Olá!

On 6/15/07, Leonardo Costa <leocostabh em gmail.com> wrote:
>
> Oi,
>
> preciso descobrir o usuário que está rodando um determinado processo
> no sistema (Linux, opensuse 10.2).
>
> Só para ajudar a entender o que eu preciso, em bash ficaria assim:
>
> # ps aux | grep cvs | cut -d" " -f1


Viva um usuario de Suse!

Esse codigo é modulo less! Procure um modulo, mas como eu gosto muito de
proc e vivo usando ele no trampo, mandei um exemplo didatico (eu acho). No
proc tem muita coisa boa de linux. Proc vem de processo e vc pode procurar
ele no google o no Documents da arvore do kernel :) para mais informaćões.

Se vc pensar da para fazer mais bonito mas eu não me preocupei com isso
agora.

Troque o firefox pelo processo que vc quer.

#!/usr/bin/perl

use strict;
use warnings;

# Ei esse é minha fonte!

opendir my $fh , "/proc" ;

# me de todos os processos

my @proc = grep /\d/ , readdir $fh;

foreach (@proc) {

        open my $fh2, "/proc/$_/cmdline";
        my $cmdline = <$fh2>;
        # Coloque o seu programa aqui!
        if ($cmdline =~ /firefox/){
            open my $fh3 , "/proc/$_/status";
            my %hash;
            while (<$fh3>){
                (my $key, my $value) = split(/:/ , $_);
                $hash{$key} = $value;
            }
            #Horrivel!
            my @user =  getpwuid($1) if ($hash{"Uid"} =~ /\s+(\d+)\s.*/) ;
            print "$user[0]\n";
        }

}



-- 
____________________________
Frederico Recsky
Linux User: #253572
http://www.fred.eti.br
http://www.perl.org.br
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://mail.pm.org/pipermail/cascavel-pm/attachments/20070618/bdf765bd/attachment.html 


Mais detalhes sobre a lista de discussão Cascavel-pm