基本上,「乘客開始」,同樣可以從終端,但像「乘客開始」一個簡單的腳本不工作,因爲它失敗:在shell腳本中運行「乘客啓動」?
*** Exception PhusionPassenger::UnknownError in PhusionPassenger::Rack::ApplicationSpawner (Could not find abstract-1.0.0 in any of the sources (Bundler::GemNotFound)) (process 19278, thread #<Thread:0x7f16dbfaf368>):
在我看來就像它無法找到寶石了。這似乎是Google的一個非常常見的問題,但我找不到任何簡單的答案。我不想用這樣的東西來修補我的滑軌應用程序:http://blog.ninjahideout.com/posts/the-path-to-better-rvm-and-passenger-integration(反正我實際上無法工作)
似乎令人難以置信的是,沒有簡單的方法來處理這個問題。爲什麼從一個shell腳本運行乘客和用手輸入它不同?
更新:基本上,我通過不使用乘客來修復它。而不是使用「乘客啓動」我現在使用「軌道服務器」,它工作正常。現在,顯然,這並不能「解決」我遇到的問題,但對於我的發展需求來說已經足夠了。
我還想詳細介紹一下我的設置,因爲我覺得我有點含糊。
基本上,我有這個腳本調用start_rails.sh
#!/bin/bash
cd /rails/app
passenger start
它沒有工作,我試圖在陽光下的一切,包括所有的採購我的bash文件,並沒有什麼工作。我改成:
#!/bin/bash
source "$HOME/.rvm/scripts/rvm"
cd /rails/app
rails s
現在它的工作。我可以從一個暴發戶腳本運行:
start on started mysql
exec sudo -u ubuntu -i /home/ubuntu/bin/start_rails.sh
然而,「乘客開始」仍然不能正常工作,從來沒有,我想永遠不會= PI仍然不知道爲什麼沒有辦法運行shell腳本並告訴它「完全按照我手動輸入它的方式運行」,因爲只需鍵入「乘客啓動」即可。從shell腳本來看,它不是。好吧。生活還要繼續。
腳本是否從命令中輸入的目錄運行?嘗試使用cd/path/to/application預置腳本; – 2012-03-27 01:12:50
登錄用戶的世界與非終端用戶的世界不同。通過ssh登錄,獲得路徑和顏色等。但是當你是非終端用戶時,情況就不同了。 Crontab任務似乎以用戶身份運行,但在非終端環境中運行。卡皮斯特拉諾的任務也可能遭受同樣的命運。關鍵在'.bashrc'中,它通常被'.bash_profile'調用,包含以下部分:'#如果不是交互式運行,不要做任何事情 [-z「$ PS1」] && return',如果一個人沒有看到這個,別做任何事情。花了很多時間瞭解這一點。 – 2012-03-27 02:15:50
哇,我還沒有嘗試過,但我的bashrc文件確實包含了[-z「$ PS1」] && return#如果不是交互式運行,請不要做任何事情。我敢打賭,這是問題,哈哈!謝謝,泰瑞森! – 2012-03-27 17:08:33