07-27-2008
How to find pid of PS which executed by perl system function
hello All,
I need to invoke by perl script some program/command and monitor it for 5
minutes . In case it still running for more then 5 min I need to send a signal which will stop it.
I implemeted this as shown below by using eval & alarm
and I'd like to know if there is a better way to find the PID of the PS which I executed by calling system , with perl command , instead of grep the ps command ?
Thanks in Advance.
eval {
local $SIG{ALRM} = sub {die "died in SIG ALRM";};
alarm(10);
`./time.pl | tee -a $log`;
alarm(1); # Somehow alarm(0) cause the prgram to get stuck
$i++ while 1;
};
print "out from eval\n";
if ($@) {
if ($@ =~ /died in SIG ALRM/) {
$ps = `ps -ef |grep user |grep time.pl |grep -v grep|grep -v nedit |grep -v "tee" |tr -s " " " " | cut -f2 -d " " `;
chomp $ps;
print "ps = $ps\n";
if($ps ne ""){
if(kill 0 => $ps){print "process : $ps is alive\n";}
kill 1 , $ps;
sleep(1);
if(kill 0 => $ps){print "process : $ps is alive\n";}
elsif($! == EPERM)
{
print "process $ps has escaped my control\n";
}
elsif($! == ESRCH)
{
print "prosess : $ps has deceased\n";
}
else
{
print "Odd: Icouldn't check the status of $c_pid\n";
}
}
}
else {
print $@;
}
}
}
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
Hi, I have a task to search for a file called 'Xstartup' in the whole system because there might be different versions of it which overrite eachother.
Can anyone suggest a smart command to run this search ? The machine needs to scan every single folder beginning from root.
Please help, I am... (5 Replies)
Discussion started by: DGoubine
5 Replies
2. Shell Programming and Scripting
I have the following perl code that I use to run backups on remote machines. No problems here, the code works without problems
system "ssh", $SHORT_NAME, "cd /;", "sudo", "tar", "cvf", "-", "--exclude=/dev", "--exclude=/proc", "/|", "netcat", "-w2", "troll", "2011" ;
The code is used for full... (3 Replies)
Discussion started by: thumper
3 Replies
3. Programming
Hi,
How I can get system function executed command return value ? I want to know mv command success or not ?
#include <stdio.h>
main()
{
int ret;
ret = system( "mv x.dat y.dat" );
printf( "system ret:\n", ret );
} (3 Replies)
Discussion started by: haiudhaya
3 Replies
4. Solaris
Hi Friends,
I am trying to execute rsh commands from Solaris 10 system to AIX system.
When I give;
Solaris10# rsh <hostname> ls -l , it gives me an error
rshd : 0826-826 The host name for your address is not known
At the same time,
Solaris10# rsh <hostname> ---- gives me remote shell of... (25 Replies)
Discussion started by: jumadhiya
25 Replies
5. Shell Programming and Scripting
In shell we can find the status of last executed command by $?
In perl what is the command to find the status of last executed command...
Can any one please say???????????????
Thanks,
Prabhu (1 Reply)
Discussion started by: prsampath
1 Replies
6. Shell Programming and Scripting
Dear all,
I'm writing a KornShell script that calls inside it a function in background mode
#!/bin/ksh
function myfunction
{ . . .}
myfunction |&
. . .
How can I capture the PID of the function myfunction that runs in background?
Thanks in advance
:) (2 Replies)
Discussion started by: dariyoosh
2 Replies
7. IP Networking
As we are facing issue with this server connection. The error is:
The system function gethostbyname() failed to find the client's host name.
how can i check if the server "server1" is able to resolve the client hostname (hosts / dns)?
i can ping the client from server.
any... (1 Reply)
Discussion started by: jinslick25
1 Replies
8. Programming
In gdb, I can call one function with command "call", but how can I step in the function? I don't want to restart the program, but the function had been executed, gdb will execute next statement, and I don't know how to recall the function. (4 Replies)
Discussion started by: 915086731
4 Replies
9. Homework & Coursework Questions
Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted!
1. The problem statement, all variables and given/known data:
I must write a shell script that calls two external Perl functions--one of which sorts the data in a file, and... (6 Replies)
Discussion started by: kowit010
6 Replies
10. Shell Programming and Scripting
Pleeeeease help..
I'm working in perl
i have a system function to check whether a file is readable for others or not.
i just want to print a text in that command
my command is :
system ("ls -la $filename | awk '\$1~ /^-......r../ {print \$9}'");
i know for displaying text in awk... (6 Replies)
Discussion started by: shubhamsachdeva
6 Replies
PIDOF(8) Linux System Administrator's Manual PIDOF(8)
NAME
pidof -- find the process ID of a running program.
SYNOPSIS
pidof [-s] [-c] [-n] [-x] [-o omitpid[,omitpid..]] [-o omitpid[,omitpid..]..] program [program..]
DESCRIPTION
Pidof finds the process id's (pids) of the named programs. It prints those id's on the standard output. This program is on some systems
used in run-level change scripts, especially when the system has a System-V like rc structure. In that case these scripts are located in
/etc/rc?.d, where ? is the runlevel. If the system has a start-stop-daemon (8) program that should be used instead.
OPTIONS
-s Single shot - this instructs the program to only return one pid.
-c Only return process ids that are running with the same root directory. This option is ignored for non-root users, as they will be
unable to check the current root directory of processes they do not own.
-n Avoid stat(2) system function call on all binaries which are located on network based file systems like NFS. Instead of using this
option the the variable PIDOF_NETFS may be set and exported.
-x Scripts too - this causes the program to also return process id's of shells running the named scripts.
-o omitpid
Tells pidof to omit processes with that process id. The special pid %PPID can be used to name the parent process of the pidof pro-
gram, in other words the calling shell or shell script.
EXIT STATUS
0 At least one program was found with the requested name.
1 No program was found with the requested name.
NOTES
pidof is actually the same program as killall5; the program behaves according to the name under which it is called.
When pidof is invoked with a full pathname to the program it should find the pid of, it is reasonably safe. Otherwise it is possible that
it returns pids of running programs that happen to have the same name as the program you're after but are actually other programs. Note
that that the executable name of running processes is calculated with readlink(2), so symbolic links to executables will also match.
SEE ALSO
shutdown(8), init(8), halt(8), reboot(8), killall5(8)
AUTHOR
Miquel van Smoorenburg, miquels@cistron.nl
01 Sep 1998 PIDOF(8)