[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