2014-11-01 21 views
12

Trên một cá thể Amazon EC2 cấp miễn phí, tôi thiết lập một ứng dụng Hello.js đơn giản trên thế giới đang chạy trên express.Tại sao quá trình ứng dụng nút của tôi tiếp tục bị dừng khi tôi sử dụng mãi mãi?

Nếu tôi chạy npm start, ứng dụng của tôi chạy tốt và tôi có thể nhấn nó từ trình duyệt của tôi, và tôi thấy đầu ra sau đây:

> [email protected] start /home/ec2-user/app 
> node ./bin/www 

Tôi đã cài đặt các công cụ mãi mãi trên toàn cầu. Khi tôi chạy forever start app.js, tôi thấy:

warn: --minUptime not set. Defaulting to: 1000ms 
warn: --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms 
info: Forever processing file: app/app.js 

Tuy nhiên, khi tôi kiểm tra forever list, tôi thấy rằng quá trình này đã ngừng:

info: Forever processes running 
data:  uid command    script forever pid id logfile       uptime 
data: [0] 2v0J /usr/local/bin/node app.js 2455 2457 /home/ec2-user/.forever/2v0J.log STOPPED 

Đây là thông điệp chỉ trong nhật ký: error: Forever detected script was killed by signal: null

Tôi không thể tìm thấy bất kỳ thông tin nhật ký nào khác. Tại sao nó tiếp tục dừng lại ngay lập tức?

EDIT: Tôi đã thử chạy nó dưới dạng nohup forever start app.js và gặp vấn đề tương tự. Tôi đang chạy số forever start và số forever list trong cùng phiên ssh, cái kia. Quá trình của ứng dụng dường như dừng ngay lập tức.

Trả lời

4

tôi đã có thể giải quyết vấn đề của tôi nhờ vào câu trả lời này trên một câu hỏi tương tự: https://stackoverflow.com/a/24914916/1791634

Quá trình này tiếp tục chạy khi tôi sử dụng forever start ./bin/www thay vì đi qua app.js

Nó vẫn còn phải chờ xem liệu điều này gây ra bất kỳ rắc rối nào trên đường.

+1

tại sao chúng thậm chí còn cho phép' mãi mãi./Bin/www' nếu mục tiêu sử dụng mãi mãi chỉ đạt được nếu 'mãi mãi bắt đầu./bin/www' được sử dụng – suku

+0

mà không cần bắt đầu, bạn có thể xem nhật ký trên bảng điều khiển SSH – Diptox

+0

Nhưng tại sao tôi 'mãi mãi myscript.js' nếu tôi chỉ có thể' nút myscript.js' mà không sử dụng mãi mãi? – Gherman

6

Tôi đoán quá trình dừng sau khi bạn ngắt kết nối khỏi ssh?

Hãy thử chạy mãi mãi với nohup trước tiên.

nohup forever start app.js 

Khi bạn ngắt kết nối từ ssh máy chủ sẽ giết tất cả các quy trình con của trình bao. nohup ngắt kết nối một quy trình khỏi trình bao chính.

+1

Tôi đang chạy 'forever start app.js' và' forever list' trong cùng phiên ssh và nó luôn bị dừng ngay lập tức. Tôi chỉ cố gắng chạy nó như 'nohup mãi mãi bắt đầu app.js' và có kết quả tương tự: quá trình mãi mãi đã được dừng lại ngay khi tôi kiểm tra nó. –

+0

Kiểm tra tệp nhật ký. Quá trình nút của bạn có chết do lỗi tập lệnh không? – Daniel

+1

Nếu tôi kiểm tra tệp nhật ký được hiển thị trong 'danh sách vĩnh viễn', tất cả những gì tôi thấy là lỗi được liệt kê trong câu hỏi trên. Có một tệp nhật ký khác mà tôi có thể kiểm tra không? –

1

Đối với tôi, tôi phải sử dụng "sudo mãi mãi" để nó hoạt động.

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