It probally depends on whether or not your using the smart thread
launcher or not - since thoose keep only one copy of rails in memory
for the entire application.
If your not then perhaps you could get away with a simple shell script
like -
for m in `/usr/bin/passenger-status | /bin/grep PID | awk {'print $2'}
`
do
kill $m;sleep 10;
done
I have not tested this but in theory that should find all the pids of
all the passenger threads and send a kill singal to one every ten
seconds.. Then new ones that spawn in their places would use the new
code base...