Get process id by using it's name


#1

Hi, folks.

first )
I have a question to get a process id by using it’s name for all
platforms.

second)
If I want to kill some processes by it’s name, are there efficient way
to do it for all platform?
For a solution for this problem, I am now using the following way :wink:

ex)

lines = $x{ ps -Au${ENV[‘USER’]} }.split("\r?\n")

lines.each do |line|
if line.match(process_name)
pids << line.strip.split[0]
end
end

count = 0
pids.each do |pid|
%x{ kill #{pid} }

count += 1 if $?.existstatus.zero?
end

print “total terminated processes : %d” % count

but, this way depends on only unix platforms.
moreover, I am not sure that all platform’s output of “ps -Au” are same.


#2

Hi,

2009/3/24 Jun Y. Kim removed_email_address@domain.invalid:

ex)
pids.each do |pid|

Try sys-proctable gem.

http://rubyforge.org/docman/view.php/610/1566/sys_proctable.html
http://www.ruby-forum.com/topic/139227#618978

Regards,

Park H.


#3

I know the sysproc library supports very good interface for this kinds
of jobs.

but, sysproc doesn’t support aix platforms.

$> rake test
(in /home/jykim/sys-proctable-0.8.0)
checking for rb_pid_t in ruby.h… yes
This platform not currently supported. Exiting…

I need pure ruby lang based libraries or all platforms ported things :slight_smile:

gamsa haeyo~

    1. 24, ¿ÀÈÄ 6:18, Heesob P. ÀÛ¼º:

If I want to kill some processes by it’s name, are there efficient
pids << line.strip.split[0]
print “total terminated processes : %d” % count

Regards,

Park H.


DSLab, CQ ±èÁØ¿µ µå¸²
          (02-2082-1091)


#4

On Mar 24, 2009, at 04:50, Jun Y. Kim wrote:

I need pure ruby lang based libraries or all platforms ported
things :slight_smile:

Since you seem to have access to an aix machine, I’m pretty sure it’ll
be easy to add aix support. I doubt the calls needed are much
different than the other unix-based machines.


#5

yes, I also believe that is the best option for me :slight_smile:

anyway, thanks for all.

    1. 25, ¿ÀÀü 3:37, Eric H. ÀÛ¼º:

This platform not currently supported. Exiting…

I need pure ruby lang based libraries or all platforms ported
things :slight_smile:

Since you seem to have access to an aix machine, I’m pretty sure
it’ll be easy to add aix support. I doubt the calls needed are much
different than the other unix-based machines.


DSLab, CQ ±èÁØ¿µ µå¸²
          (02-2082-1091)


#6

Jun Y. Kim wrote:

but, sysproc doesn’t support aix platforms.

I don’t have access to an AIX machine, but this might get you started on
a port for sys-proctable:

http://cpansearch.perl.org/src/DURIST/Proc-ProcessTable-0.45/os/

There appear to be 2 variants for AIX, so I’m not sure which one Dan is
using, but perhaps they’ll give you some ideas.

Regards,

Dan