#!/usr/bin/perl -w use strict; my $pid=$ARGV[0]; my $trace_out; my $strace_pid; eval { local $SIG{ALRM} = sub { kill 2, $strace_pid || warn "couldn't kill $strace_pid: $!"; close STRACE or die "couldn't close strace"; die "exiting eval"; }; $strace_pid = open (STRACE,"strace -q -p$pid 2>&1|") or die "couldn't open strace"; alarm (1); undef $/; $trace_out= ; }; print "traceout is $trace_out"; #### #!/usr/bin/perl use Fcntl ':flock'; open FH, "file.txt" ; flock FH, LOCK_EX or die "couldn't lock"; while (true) {}; #### >./locker.pl & [1] 17289 >./locker.pl & [2] 17290 >strace -q -p17289 >strace -q -p17290 flock(3, LOCK_EX #### ./hang_finder 17290 traceout is #### traceout is flock(3, LOCK_EX