Hey, I have this pretty standard init script for Unicorn http://pastie.org/2840779 where fxn at cohen:~$ ls -la /etc/init.d/unicorn_home lrwxrwxrwx 1 root root 32 2011-11-09 23:45 /etc/init.d/unicorn_home -> /home/fxn/home/config/unicorn.sh fxn at cohen:~$ ls -la $HOME/.rvm/bin/ruby -rwxrwxr-x 1 fxn sudo 265 2011-11-09 21:44 /home/fxn/.rvm/bin/ruby and $APP_ROOT/bin/unicorn_rails is a binstub created by bundler. The init script works like a charm if I run it with sudo, but for some reason the service is not launched if the machine is rebooted. Do you know what could happen or how could I debug it? dmesg | grep unicorn prints nothing.
Xavier Noria <fxn at hashref.com> wrote:> Hey, I have this pretty standard init script for Unicorn > > http://pastie.org/2840779 > > where > > fxn at cohen:~$ ls -la /etc/init.d/unicorn_home > lrwxrwxrwx 1 root root 32 2011-11-09 23:45 /etc/init.d/unicorn_home > -> /home/fxn/home/config/unicorn.sh > > fxn at cohen:~$ ls -la $HOME/.rvm/bin/ruby > -rwxrwxr-x 1 fxn sudo 265 2011-11-09 21:44 /home/fxn/.rvm/bin/ruby > > and $APP_ROOT/bin/unicorn_rails is a binstub created by bundler.Is /home mounted later in the boot process than when the unicorn init script fires? unicorn should be one of the last things to start if you''re putting it in init.> The init script works like a charm if I run it with sudo, but for some > reason the service is not launched if the machine is rebooted. > > Do you know what could happen or how could I debug it? dmesg | grep > unicorn prints nothing.You could put the following near the top of the init script (after "set -e"): # make sure the directory for this file is something that persists # throughout the boot process (isn''t mounted-over by another dir): ERR=/var/tmp/unicorn.init.err rm -f "$ERR" exec 2>> "$ERR" # ... rest of the script All stderr output (before unicorn is started) will then go to whatever you set ERR to. If you got all the way to starting unicorn: does the stderr log of unicorn have anything interesting? (please configure stderr_path if you haven''t already) You can also add "set -x" to the init script and things will get very verbose once you set it. Can''t think of much else on my sleep-deprived brain...
For the archives: I am sure I am missing something easy here, but anyway since I like to think about the app as something mostly local to the user running under the user''s rvm, I launch Unicorn on reboot via the user''s crontab: @reboot /home/fxn/home/config/unicorn.sh start That worked out of the box. Thanks Eric!