Olá!<br><br><div><span class="gmail_quote">On 6/15/07, <b class="gmail_sendername">Leonardo Costa</b> <<a href="mailto:leocostabh@gmail.com">leocostabh@gmail.com</a>> wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Oi,<br><br>preciso descobrir o usuário que está rodando um determinado processo<br>no sistema (Linux, opensuse 10.2).<br><br>Só para ajudar a entender o que eu preciso, em bash ficaria assim:<br><br># ps aux | grep cvs | cut -d" " -f1
</blockquote></div><br>Viva um usuario de Suse!<br><br>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.
<br><br>Se vc pensar da para fazer mais bonito mas eu não me preocupei com isso agora.<br><br>Troque o firefox pelo processo que vc quer. <br><br>#!/usr/bin/perl<br><br>use strict;<br>use warnings;<br><br># Ei esse é minha fonte!
<br><br>opendir my $fh , "/proc" ;<br><br># me de todos os processos<br><br>my @proc = grep /\d/ , readdir $fh;<br><br>foreach (@proc) {<br><br> open my $fh2, "/proc/$_/cmdline";<br> my $cmdline = <$fh2>;
<br> # Coloque o seu programa aqui!<br> if ($cmdline =~ /firefox/){<br> open my $fh3 , "/proc/$_/status";<br> my %hash;<br> while (<$fh3>){<br> (my $key, my $value) = split(/:/ , $_);
<br> $hash{$key} = $value;<br> }<br> #Horrivel!<br> my @user = getpwuid($1) if ($hash{"Uid"} =~ /\s+(\d+)\s.*/) ;<br> print "$user[0]\n";<br>
}<br><br>}<br><br><br><br>-- <br>____________________________<br>Frederico Recsky<br>Linux User: #253572<br><a href="http://www.fred.eti.br">http://www.fred.eti.br</a><br><a href="http://www.perl.org.br">http://www.perl.org.br
</a>