Bradley, I can wait a few more days! Great News! Also, thank you everyone for the help.
On 4/17/07, Bradley Taylor <[EMAIL PROTECTED]> wrote: > Hi: > > As I mentioned earlier, I'll fix this for the final release (any day now > - been really busy). > > http://rubyforge.org/pipermail/mongrel-users/2007-April/003454.html > > However, as I wrote before, its not a good idea to put pidfiles in a > relative directory as they won't get cleaned up after a server crash. > For linux, /var/run/mongrel_cluster is a better location. > > http://rubyforge.org/pipermail/mongrel-users/2007-February/003000.html > > Bradley > > Matte Edens wrote: > > Sorry. another long one. > > > > Wayne, I used to use that actually. And I even tried it last night, and > > today, before sending the email. It didn't work using capistrano, or > > from anywhere that wasn't a rails_root location. There's still a > > problem of where the command is run and where mongrel_cluster thinks > > it's looking for the pid files. Here's how I see it happening... > > > > 1) we run "cap restart" on local machine where it logs in via ssh to > > execute remote commands > > 2) located in the /home/ssh_user directory, the remote commands run from > > here. > > 3) restart runs a "stop/start" command sequence. yes, I've been reading > > the discussion of using a -USR2 command, but for this discussion we > > ignore that until the bottom of this email. > > 4) "stop" line 101, reads the options > > 5) "read_options" line 28 calls "process_pid_file" to parse the pid_file > > setting > > 6) "process_pid_file" sets up several variables for future use. > > > > Here is where it breaks down with a relative path pid_file setting. > > None of the File.* commands are run from the cwd in that function. > > They're run from the /home/ssh_user directory. Now I don't know about > > you but I don't run my applications from that directory. Thus, with a > > setting of "log/mongrel.pid", the port_pid_file function returns > > "log/mongrel.8000.pid" and check_process is looking for > > /home/ssh_user/log/mongrel.8000.pid which obviously doesn't exist. > > Making a small change, that I am not suggesting is a fix, just > > temporary, I rewrote this line in process_pid_file (line 40). > > > > @pid_file_dir = File.dirname("[EMAIL PROTECTED]'cwd']}/#{pid_file}") > > > > That's just a test to see if it would work with the addition of the > > cwd. It worked of course, because now File.dirname had an absolute path > > to parse. > > > > So, my suggestions from the first email, IMHO, are still valid. Patch > > mongrel_cluster/init.rb to either ... > > > > 1) Change directories in "stop" and "start" before the check_process > > functions are called so that relative directories are handled correctly, > > (see my pastie) or > > 2) Change the process_pid_file function to handle relative directory > > pid_file settings by prepending the cwd setting. > > > > or 3) have everyone change their mongrel_cluster config files to us > > absolute directory paths. And, then there's the more recent discussion > > of changing the restart command to just call a -USR2 on mongrel_rails. > > > > Personally, I'd like it to be fixed within mongrel_cluster so that it's > > just picked up by everyone when they update their gem. And instead of > > asking everyone to put in a "after_after_deploy" capistrano task like > > Zed mentioned in this thread. However, I just tried the following > > capistrano task... > > > > task :restart do > > sudo "killall -USR2 mongrel_rails" > > end > > > > and got this error "No matching processes were found". No idea about > > that except that when I "ps aux | grep mongrel_rails", each command > > starts... > > > > /usr/local/bin/ruby18 /usr/local/bin/mongrel_rails start -d -e > > production -a 127.0.0.1 -c /home/... > > > > My linux_fu is not strong enough to know how to diagnose this last issue. > > > > matte > > > > Wayne E. Seguin wrote: > >> Matte, > >> On Apr 17, 2007, at 00:09 , Matte Edens wrote: > >> > >>> "sudo mongrel_rails cluster::restart -C [valid path to config] -- > >>> clean" > >>> > >> > >> Is this really a problem with mongrel cluster? > >> > >> A "fourth" solution is to simply modify your restart task in your > >> Capistrano recipe: > >> > >> task :restart, :roles => :app do > >> run(or sudo) "cd #{current_path}; mongrel_rails cluster::restart - > >> C [valid path to config] --clean" > >> end > > > > > > ------------------------------------------------------------------------ > > > > _______________________________________________ > > Mongrel-users mailing list > > Mongrel-users@rubyforge.org > > http://rubyforge.org/mailman/listinfo/mongrel-users > > _______________________________________________ > Mongrel-users mailing list > Mongrel-users@rubyforge.org > http://rubyforge.org/mailman/listinfo/mongrel-users > -- -mike _______________________________________________ Mongrel-users mailing list Mongrel-users@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-users