2013-02-13 17 views
11

Tôi đang cố chạy ứng dụng nodejs của mình trên phiên bản Amazon EC2 sử dụng mãi mãi. Tôi đã cài đặt nodejs npm và sau đó chạy sudo npm install forever -g.
Cài đặt không trả lại bất kỳ lỗi nào, vì vậy tôi tiếp tục và thử chạy ứng dụng của tôi bằng cách sử dụng forever start server.js, nhưng nó sẽ không làm bất cứ điều gì - không có đầu ra gì, bao giờ, thậm chí không lỗi.
Tôi cũng đã cố gắng forever --help và chỉ forever, nhưng không ai trong số họ đem lại cho tôi bất kỳ phản ứng ...nodejs 'forever' không làm bất cứ điều gì

Khi chạy ứng dụng của tôi thường xuyên sử dụng nodejs - nodejs init.js sau đó nó hoạt động như mong đợi, nhưng tôi cần phải làm cho nó chạy bằng forever nên nó sẽ không tắt khi tôi ngắt kết nối từ máy chủ.

Edit:
Kể từ khi vấn đề duy nhất tôi đã có được rằng nodejs được đóng khi tôi đóng cửa phiên cuối đến máy chủ EC2 của tôi, tôi đã giải quyết điều này bằng cách sử dụng Linux nohup lệnh như thế này:
nohup sudo nodejs server.js &
Điều này giữ nodejs chạy trong một tiến trình con ngay cả sau khi tôi đóng cửa sổ terminal.

Cảm ơn bạn đã trợ giúp! :)

+0

Có, nhưng nếu tập lệnh crasches bạn phải khởi chạy lại thủ công. Làm cách nào mà bạn có thể điều hành nó? –

Trả lời

2

Tôi không biết điều này có hữu ích hay không, nhưng thay vào đó, bạn có thể sử dụng upstart. Tạo tập lệnh như sau:

#this is the upstart service task. move it to /etc/init/nodeapp.conf 

description "server for Node App" 
author "Neels Grobler" 

chdir /root/servers/nodeapp 
exec node init.js 1>stdout.log 2>stderr.log 
respawn 

Và chạy bằng cách nhập start nodeapp. Để dừng loại stop nodeapp. Bạn cũng có thể thay đổi kịch bản để ứng dụng nút khởi động khi khởi động hệ thống, vv Thông tin thêm tại upstart.ubuntu.com

1

Bạn nên sử dụng forever start server.js không chỉ forever server.js

+0

đã thử điều đó, nhưng nó không hoạt động. Tôi không nhận được bất kỳ phản hồi nào từ bất kỳ lệnh nào bắt đầu bằng 'mãi mãi' – gillyb

+0

bạn có thể viết kết quả đầu ra của 'mãi mãi' – Mustafa

+0

/usr/local/bin/forever – gillyb

0

Một số dự đoán.

  • Nếu bạn cài đặt bằng cách sử dụng sudo npm install forever -g, bạn có thể cần phải sudo để chạy vĩnh viễn.
  • Đặt một đường dẫn đầy đủ của server.js khi bạn chạy mãi mãi như forever start /home/you/source/server.js hoặc sudo forever start /home/you/source/server.js
14

tôi cũng không nhận được bất kỳ stdout đầu vào từ bất kỳ lệnh forever và sửa chữa đóng đinh nó:

sudo ln -s /usr/bin/nodejs /usr/local/bin/node 

Hy vọng rằng sẽ giúp ai đó.

+3

woot! điều này đã làm cho tôi. hy vọng những người khác tìm thấy câu trả lời này – Kyle

+0

yep. nó cũng làm việc cho tôi. – Shane

+0

Cảm ơn, điều này đã giúp tôi. –

1

Trên cửa sổ, khi bạn chạy mãi mãi như:

forever start app.js 

bạn có thể tìm thấy file log được tạo ra trong hệ thống tập tin tại địa chỉ:

C:\Users\USERNAME\.forever\SomeLogFileHere.txt 

Các file log được tái sinh cho mỗi kịch bản chạy với identicator độc đáo của mỗi tệp. Bạn luôn có thể kiểm tra xem tệp nào thuộc về quá trình nào bằng cách:

forever list