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

Fortier & Co. Makes Stylin’ Body Armor

Fortier & Co. Makes Stylin’ Body Armor -

Those of our readers who are aspiring rap artists should pay close attention. Frontier & Co. works with big name clothing designers like Burberry, YSL, Kenneth Cole, etc. to design body armor that blends in naturally with your apparel. Take for instance this beautiful trenchcoat from Burberry. It uses ballistic fibers that are stronger than steel, yet lightweight, to protect you from oncoming bullets. It also doubles as an incredibly handsome coat.

Unfortunately, protection and style do not come cheap. The aforementioned coat will set you back $2195 for the basic model. That means you could end up spending some serious cash if you’re worried about being taken out by an AK-47.

Fortier & Co. Body Armor [Luxist]

[CrunchGear]
Read More

Linksys WRT54G and WRT54GL Being Phased Out?

I went to pick up a Wireless Router from a local computer shop http://www.a-power.com in hopes of grabbing a WRT54GL or at least a WRT54GS. The main reason being that I could flash the hardware to run DD-WRT http://www.dd-wrt.com which is a third part open source router firmware.
Read More

Want a Google Reader equivalent, then check out Tiny Tiny RSS 1.2.12

When I firsted looked at the this application, I thought it was going to look ugly and have no functionallity. I mean after looking at Google Reader and using it for some time, it really was another good Google Application. And it was made to make it easy to read and sort RSS feeds. One look at the demo, and I was hooked. It has some common features that Google Reader does, starred items and labels. I just wonder if you can plop and authentication/user account creation on it so that you can offer your own branded reader similar to Googles. TinyTiny RSS 1.2.12 Demo!
Tiny Tiny RSS 1.2.12 (Default branch) - Screenshot Tiny Tiny RSS is a Web-based news (RSS, RDF, or Atom) feed aggregator designed to allow you to read news from any location, while feeling as close to a real desktop application as possible.
License: GNU General Public License (GPL)
Changes:
This release fixes reported bugs, adds the zh_CN translation, and adds various minor improvements.

[FreshMeat]
Read More