2012-03-10 32 views
5

Tôi đã thiết lập máy chủ của mình gần đây và hôm nay tôi phải khởi động lại ... sau đó tôi nhận ra tất cả các ứng dụng Node mà tôi đã chạy ' t chạy nữa. Tôi đang sử dụng mô-đun Node Forever để giữ cho các ứng dụng chạy, nhưng sau đó tôi nhận ra tôi vẫn cần phải có chúng bắt đầu khi máy chủ của tôi khởi động lại hoặc tắt máy và bật lại.Không thể lấy kịch bản Upstart của tôi để chạy Node.js và Forever khi máy chủ khởi động lại

Tôi đã nghiên cứu cách tốt nhất để làm điều này, nhưng những gì tôi đang cố gắng dường như không hoạt động. Tôi đã tạo một kịch bản Upstart trong thư mục /etc/init/ trên máy chủ từ xa Ubuntu Server 10.04LTS của tôi và đã thử khởi động lại và dường như không làm gì cả. Không có gì được liệt kê khi tôi chạy forever list.

Đây là kịch bản Upstart hiện tại của tôi, tôi đã cố gắng ra ngày hôm nay:

#/etc/init/myapp.conf 

start on (local-filesystems and net-device-up IFACE=eth0) 
stop on shutdown 

script 

    exec sudo /usr/local/bin/node /var/www/myapp/myapp.forever.js 
end script 

tôi sử dụng Vô hạn trong một kịch bản Node như tôi tìm thấy nó dễ dàng hơn để cấu hình nó như thế nào tôi muốn. Nó xác nhận rằng kịch bản chạy tốt nếu tôi làm điều này bên ngoài kịch bản, chỉ có một cái gì đó sai trái với bản thân Upstart. Dường như có các quyền tương tự như tất cả các tập lệnh Upstart khác trong thư mục /etc/init/.

Là một lưu ý bổ sung, tôi đã trải qua hầu như tất cả các câu trả lời tôi có thể tìm thấy ở đây trên StackOverflow và rằng tôi đã tập hợp lại kịch bản mà tôi có hiện tại như thế nào.

UPDATE:

Với câu trả lời của Tom, bây giờ tôi đã cố gắng:

#/etc/init/myapp.conf 

start on (local-filesystems and net-device-up IFACE=eth0) 
stop on shutdown 

exec sudo /usr/local/bin/node /var/www/myapp/myapp.forever.js 

Nhưng nó vẫn không làm việc.

Vì vậy, tôi không biết tại sao điều này không chạy khi tôi khởi động lại máy chủ của mình. Hãy giúp tôi!

+0

Tại sao bạn sử dụng Vô hạn ở tất cả? Tôi chạy nút thực thi trực tiếp thông qua Upstart và nó hoạt động và khởi động lại tốt. –

+0

@hiteshjoshi Tại sao? Đó không phải là câu trả lời đúng tôi sợ. – littlejim84

+0

Tôi có cùng vấn đề .. đang sử dụng tham chiếu này https: // www.exratione.com/2013/02/nodejs-and-forever-as-a-service-simple-upstart-and-init-scripts-for-ubuntu/ –

Trả lời

0

Bạn đã thử thực hiện nó mà không có dòng lệnh bắt đầu?

description "my server" 
author "name" 

start on (local-filesystems and net-device-up IFACE=eth0) 
stop on shutdown 

#respawn if you were not using forever 

exec sudo /usr/local/bin/node myapp.forever.js 

Nguồn: http://caolanmcmahon.com/posts/deploying_node_js_with_upstart

+0

Xin chào @Tom. Tôi đã thử những gì bạn đề xuất và nó vẫn không hoạt động. Tôi đang đọc qua liên kết hữu ích của bạn ngay bây giờ ... Người đàn ông, nó làm tôi phát điên! – littlejim84

2

Đây không phải là một thiết lập rất hạnh phúc. Cách khởi động các công trình là nó bắt đầu quá trình của bạn chạy nó bằng cách sử dụng id quá trình cho lệnh bắt đầu. Forever JS hoạt động tương tự, nó có lẽ được lấy cảm hứng từ Upstart.

Khi bạn cố gắng chạy forever.js với mới nổi, quy trình vĩnh viễn bạn tạo trong tập lệnh khởi động sẽ thoát ngay lập tức sau khi bắt đầu. Số tiền mới bắt đầu có quá trình tiếp tục chạy.

Khi tôi cố gắng chạy mãi mãi bằng cách mới nổi, tôi đã thực hiện năm quy trình khác nhau mãi mãi vì mới nghĩ rằng nó đã thất bại trong việc bắt đầu mãi mãi và thử lại năm lần.

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