Debian
如何從 Debian 上的 shell 腳本啟動 Rails?
目前我真的沒有必要去打擾乘客或卡皮斯特拉諾。我只是想在埠 3000 上啟動時執行 rails。我已經嘗試盡可能多地為節點複製本教程來執行 rails:
我有一個
railsup
腳本,/etc/init.d/
類似於:#!/bin/sh export PATH=$PATH:/usr/local/bin case "$1" in start) cd /root/rails_app; /usr/local/rvm/gems/ruby-2.0.0-p247/bin/rails server -d -p 3005 ;; # starting other stuff *)
我也把它包括在
update-rc.d
我讓它工作,但前提是我手動執行腳本 - 它似乎不會在啟動時執行。
../bin/rails
啟動時不可用有什麼原因嗎?我想我不知道關於 ruby path \ rvm \ rails 的一些事情?有沒有辦法為此使用 crontab 的 @reboot ?
使用
init.d
有了新的 System-V 並行化系統,您必須在腳本頂部添加一個INIT INFO部分。
查看
/etc/init.d/README
並嘗試將其添加到腳本頂部:#! /bin/sh ### BEGIN INIT INFO # Provides: rails # Required-Start: $local_fs $remote_fs # Required-Stop: # X-Start-Before: rmnologin # Default-Start: 2 3 4 5 # Default-Stop: # Short-Description: Start Rails on port 3000 ### END INIT INFO
使用
cron
(並以您自己的使用者身份執行)您可以在每次重新啟動時使用特定語法執行守護程序:
cron
crontab -l | sed '$a@reboot /usr/bin/rail-or-other-bin -arg1 -arg2 -port 3000' | crontab
警告執行這個命令(
crontab
沒有參數和來自管道的標準輸入)會改變你的crontab
!看man crontab
!
crontab
…並在沒有最後一個之前嘗試這個:crontab -l | sed '$a@reboot /usr/bin/rail-or-other-bin -arg1 -arg2 -port 3000'
這樣做的好處是守護程序在使用者空間中執行,執行錯誤將通過正常的 cron 方式作為郵件發送給您。