Posted in Shell, System Administration on 02/07/2008 04:29 pm by jmccune
I’ve been using the find command for over a decade now, and I’m ashamed to say I never really learned how to properly exclude directories. Dealing with with subversion working copies that litter “.svn” folders everywhere, I finally sorted it all out this afternoon.
To exclude “.svn” folders and all contents:
$ find . '!' '(' -name '.svn' -prune ')'
This, combined with find -print0 and xargs -0 to execute arbitrary commands on every filesystem object found is a wonderful tool to keep handy.
Posted in Linux, Solution, System Administration on 12/12/2007 01:18 pm by jmccune
Working with Apache today, I ran into an issue where the process would appear to start OK, returning a zero exit status, yet strace was showing a SIGCHLD being caught.
Needless to say, the server wasn’t actually running for any length of time, but I found the following strace command immensely helpful in figuring out the problem.
strace -o /tmp/httpd.strace -ff /usr/sbin/httpd
Because apache spawns a number of children, strace with -ff attaches to each child and recorded the system calls in /tmp/httpd.strace.$PID
As it turns out, I was receiving the following error in the child processes:
bind(5, {sa_family=AF_INET, sin_port=htons(443), sin_addr=inet_addr("0.0.0.0")}, 16) \
= -1 EADDRINUSE (Address already in use)