May 27, 2010

Well, once again, I needed to find a solution to a non-existent problem. Well, almost non-existent.

The other day we had a rather unique error when trying to restart an Apache process. A stop command was issued, the process died off in the process list, but an orphaned session was keeping the http port tied up, so Apache could not restart.

What to do?

Well, given my awakening and increasing knowledge of the various commands and utilities in Linux, the only solution was to over-engineer a fully automated solution I could incorporate into a maintenance script.

With no further adieu, I give you a completely hands off way to kill the process holding on to a given port.

$SFL is the absolute location of a file containing the sudo password of the account used to run the command(s).

Fairly simple, and overly engineered solution, so the only proper title was of course, nerdcred++. Anyone else have a more elegant solution that can be used in an automated script, and without the httpd.pid being in existence?

elif [ $TYPE == "-h" ]; then
echo “ sftp_util syntax is:”
echo “ ./sftp_util.sh <GET|PUT|DEL|-h> <FileName> [-s] [-l]”
echo “ GET GET is used to retrieve a file from the remote server.”
echo “ PUT PUT is used to place a file on the remote server.”
echo “ DEL DEL is used to delete a file from the remote server.”
echo “ -h -h is used to print this help menu.”
echo “ -s -s <sftp server path of/to file, do not include a leading ‘/’ (ex. test/test2)>”
echo “ -l -l <sftp server path of/to file>”

else
echo “Please use ./sftp_util.sh -h for help”
fi

Usage goes a little something like this:

server1$> ./sftp_util.sh PUT file -s test/empty_dir -l /home/user

server2$> ./sftp_util.sh GET file -s test/empty_dir -l /here

server2$ ./sftp_util.sh DEL file -s test/empty_dir

Nothing overly fancy, just a quick little script to save me time and have a bit of fun on a slow work day.