2012-04-30 50 views
5

tôi đã sử dụng các hướng dẫn sau để cài đặt và cấu hình máy chủ mỏng như một dịch vụ trên Ubuntu 10.04.4 với Rails 3.2.3:Không thể khởi động máy chủ mỏng như dịch vụ, RubyGems: Không thể tìm thấy mỏng

http://articles.slicehost.com/2008/5/6/ubuntu-hardy-thin-web-server-for-ruby

máy chủ Thin hoạt động tốt chạy nó từ gốc ứng dụng, sử dụng 'bắt đầu mỏng'

Tuy nhiên, khi tôi cố gắng để chạy các dịch vụ sử dụng bất kỳ các lệnh này:

service thin start 
sudo service thin start 
/etc/init.d/thin start 
sudo /etc/init.d/thin start 

tôi nhận được lỗi sau:

/home/myuser/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:247:in `to_specs': Could not find thin (>= 0) amongst [bigdecimal-1.1.0, io-console-0.3, json-1.5.4, minitest-2.5.1, rake-0.9.2.2, rdoc-3.9.4] (Gem::LoadError) 
    from /home/myuser/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:256:in `to_spec' 
    from /home/myuser/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems.rb:1210:in `gem' 
    from /home/myuser/.rvm/gems/ruby-1.9.3-p125/bin/thin:18:in `<main>' 

này dường như không phải là một vấn đề với PATH, 'mà mỏng' một cách chính xác trả về:

home/myuser/.rvm/gems/ruby-1.9.3-p125/bin/thin 

Tôi cũng đã xác minh sự tồn tại của **/bin/mỏng bất cứ nơi nào nó tham chiếu

tôi đã thử cài đặt lại viên ngọc sử dụng 'viên ngọc gỡ bỏ cài đặt mỏng', 'gem install mỏng' không thành công

có ai experie nced này trước khi? Tôi chỉ tìm thấy một ví dụ khác của vấn đề này: Cannot restart thin via remote machine

Vấn đề đó dường như đã được chỉ qua ssh, trong khi tôi thậm chí không thể có được sự phục vụ mỏng bắt đầu tại địa phương

Cảm ơn

+0

Hướng dẫn bạn đang theo dõi là dành cho phiên bản cũ của ubuntu, 10.04 đã đã thay đổi cách làm việc init script. Bên cạnh đó, tại sao bạn muốn chạy mỏng bằng cách sử dụng '/ etc/init.d'? thay vì mỏng -d? – CuriousMind

+0

Cố gắng làm cho nó chạy như một dịch vụ lúc khởi động, tôi có nên tạo một tệp sh chạy chạy -d và đặt nó ở đâu đó để chạy khi khởi động không? – samJL

Trả lời

2

Dường như mỗi công việc khởi động được nạp vỏ của riêng nó. như vậy, thử tải rvm trước khi cố gắng để bắt đầu mỏng:

#! /bin/sh 
# Load RVM into a shell session *as a function* 
if [[ -s "$HOME/.rvm/scripts/rvm" ]] ; then 

    # First try to load from a user install 
    source "$HOME/.rvm/scripts/rvm" 

elif [[ -s "/usr/local/rvm/scripts/rvm" ]] ; then 

    # Then try to load from a root install 
    source "/usr/local/rvm/scripts/rvm" 

else 

    printf "ERROR: An RVM installation was not found.\n" 

fi 

rvm use 1.9.3 
cd /path/to/your/application/code 
bundle exec thin -d 

nơi này trong /etc/init.d/thin_service & chạy

$ sudo update-rc.d thin_service defaults 

Cuối cùng, bạn có thể kiểm tra bằng cách đơn giản bằng cách gõ sudo start thin_service & sudo stop start_thin thay vì khởi động lại. Nếu điều này vẫn không hoạt động, hãy thử railsgems-bundler và rvm wrapper. Ngoài ra, hãy đọc rvm's Deployment Best Practices

5

Vì dường như từ chồng bạn đang sử dụng rvm và bạn đang sử dụng cài đặt mỏng làm đá quý, bạn cần sử dụng trình bao bọc rvm để dịch vụ hoạt động. Trước tiên, hãy xóa đầu dịch vụ cài đặt lại nó rvmsudo thin install thay vì sudo thin install. Bạn cũng nên sử dụng rvmsudo thin config trong khi tạo tệp cấu hình.

Để createa một wrapper,

rvm wrapper <your_rvm_ruby_version>@<your_rvm_gemset_in_use> bootup thin 

bạn có thể tìm tên bằng cách sử dụng danh sách rvm listrvm gemset tương ứng. Trình bao bọc sẽ có tên bootup_thin mà bạn có thể xác nhận nó đang sử dụng đúng rvm theo đó bootup_thin. Bạn có thể cho nó bất cứ cái tên nào bạn muốn khi tạo ra nó.Sau đó, bạn cần phải chỉnh sửa kịch bản mỏng bằng

sudo nano /etc/init.d/thin 

Thay đổi DAEMON gốc để

DAEMON=location_of_bootup_thin 

nào phải là kết quả của which bootup_thin. Sau đó, bạn có thể bắt đầu dịch vụ.

sudo service thin start 

Tôi hy vọng điều này sẽ giúp

Các vấn đề liên quan