Super “strace” perl script to assist with debugging programs that spawn child processes.

If you have ever ran into a problem with trying to strace apache or other processes that spawn children, then this script will help you out greatly. This small perl script will grab all of the PID’s of the current process and its children and then run an strace command on all of them to provide strace output from all of apache. You can modify the strace line to your liking as well as the log names, by default it logs to a file based on date and time to the /tmp directory. Code included, click ‘Read More’.

If you have ever ran into a problem with trying to strace apache or other processes that spawn children, then this script will help you out greatly. This small perl script will grab all of the PID’s of the current process and its children and then run an strace command on all of them to provide strace output from all of apache. You can modify the strace line to your liking as well as the log names, by default it logs to a file based on date and time to the /tmp directory. Code included, click ‘Read More’.


#!/usr/bin/perl

# Do we have any input?
if(!$ARGV[0]) {
print "Super strace, will strace a running application and all of its children.\nUsage: $0 \nExample: $0 apache2\n";
exit;
}
# get the data we need!
@pids = `pgrep @ARGV[0]`;
# this is the old method, if pidof doesn't exist uncomment if the above breaks
#@pids = `ps auxwwf | grep apache | awk \'\{ print \$2\}\'`;
# get some variables for the current time! Gotta be iso 8601 YYYY-MM-DDThh:mm:ssTZD (eg 1997-07-16T19:20:30+01:00)
#my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime time;
$date = `date +%FT%H:%M:%S%:z`;
chomp ($date);
#$year += 1900;
#$mon += 1;
#$date = "$year-$mon-$mdayT$hour:$min:$sec";
# the strace command! this can be replaced with any command
$go="strace -f -s 40000 -o /tmp/sstrace-$date";
# the separator
$sep = " -p ";
$i=0;
foreach $pid (@pids) {
chomp ($pid);
$go = $go . $sep . $pid;
$i++;
}
print $go . "\n";
exec $go;


Did you like this article?


0 Shares:
You May Also Like

Flock 0.9 lands gracefully

I remember first hearing about flock. I actually got a version of it when it was just skinned to look different than FireFox. I didn't expect the project to get this far. Give it a wirl, looks to be promising.
Flock 0.9 lands gracefully -

The Flock project has been building a "social Web browser" since 2005. The upcoming Flock 0.9 release adds new blogging features, integrates media streams into the browser, and includes an overhaul of the Flock bookmark system. It's not perfect yet, but Flock 0.9 is a big leap forward.

[Linux.com]
Read More

New Pwnage Tool 2.0.3 and QuickPwn 1.50

I haven't been keeping up with my submissions as of late so this one squeaked through. But the http://iphone-dev.org team has updated both their PwnageTool and QuickPwn Tool. There is still however no baseband unlock, just support for new jailbreaking of the new firmware.
Read More

Hitachi launches 3 new sexy slim LCD TV’s – 35mm thick

Hitachi has released their new 35mm thick LCD's, if you take a look at some of the pictures you will see just how slim this product is. They have released three different sizes of the TV in 32", 37" and 42". Hitachi is now the first company to officially have the world's first thinnest LCD TV's.
Read More