2011-10-17 27 views
6

Tôi đang sử dụng máy chủ mỏng cho ứng dụng Sinatra của mình. Nó được bắt đầu thusly:Thin và sinatra - cách dừng/khởi động lại? Không có thin.pid

thin -C config/environment.yml -R config/config.ru start 

đâu environment.yml có thứ mỏng và config.ru có công cụ nói chung bạn sẽ tìm thấy trong một file rackup.

Tôi muốn có thể daemonize (dễ dàng đủ với tập tin cấu hình của mỏng) và dừng lại và khởi động lại này giống như một không với apache/tomcat/etc.

Khi tôi cố gắng thin stop hoặc khởi động lại hoặc nhiều thứ khác, tôi nhận được:

Can't stop process, no PID found in tmp/pids/thin.pid

Trên thực tế, không có tập tin như vậy. Tôi đã thử xác định một tệp pid và vị trí (ví dụ: /tmp/thin.pid, để dễ dàng) trong cấu hình yml mỏng đến các địa điểm khác nhau. Tất cả điều này không thay đổi vị trí của thư mục trong thông báo "no PID found in", vẫn không có tệp pid nào được tạo.

Bất kỳ ý tưởng nào?

+0

là ứng dụng của bạn thực sự chạy? Bạn có được mỏng với 'ps rìu | grep thin'? – Slartibartfast

+0

Có, ứng dụng đang chạy, tôi nhận được nó với ps và tôi có thể kết nối với nó thông qua trình duyệt/curl/những gì có bạn. Tôi chạy nó hiện tại trong một 'màn hình' và, khi tôi muốn khởi động lại, chỉ cần' screen -r', 'ctrl + c', và khởi động lại bằng tay. Tôi muốn làm tốt hơn. –

+0

Bạn đã thử 'stop -C config/environment.yml stop' chưa? – Slartibartfast

Trả lời

9

Pid sẽ được tạo khi mỏng được sao chép, do đó hãy kiểm tra kỹ cấu hình của bạn theo tùy chọn daemonize: true. Xem xét đó là yaml, khoảng trắng có thể làm cho mọi thứ trở nên sai. Hoặc chỉ định công tắc --daemonize.

Nếu vị trí của tập tin pid của bạn là không phải mặc định, bạn cũng nên xác định tập tin cấu hình khi phát hành stop:

thin -C config/environment.yml stop 
+0

Tôi khá chắc chắn rằng điều này sẽ là 'daemonize: true' trong tệp cấu hình (tức là không" d ") –

+0

@Jonathan Cairns cảm ơn, đã sửa. – Slartibartfast

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