2015-09-24 26 views
6

Tôi đang sử dụng pm2 để bắt đầu quá trình node.js và tôi muốn quá trình này được bắt đầu tự động khi hệ thống (Ubuntu 14.04 trên bộ vi xử lý Intel Atom) được khởi động. Tôi đã làm theo hướng dẫn trên pm2 web site nhưng không thành công. Dump.pm2 của tôi có vẻ đúng, nhưng daemon pm2 không bao giờ bắt đầu. Tôi đã thử cả hai tùy chọn ubuntulinux để pm2 startup, cũng như tự động phát hiện, cả có và không có người dùng được chỉ định. Tệp (liên kết) S20pm2-init.sh đã được tạo trong /etc/rc[2-5].d nhưng không có gì được bắt đầu. Tôi không thể tìm thấy bất kỳ thông báo lỗi rõ ràng nào trong nhật ký hệ thống.Ubuntu 14.04 - pm2 khởi động không bắt đầu sau khi khởi động lại

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

Chỉnh sửa để thêm

Tôi thấy rằng service pm2-init.sh start bắt đầu daemon một cách chính xác, khi chạy từ tài khoản đăng nhập của tôi, mà là giống như định nghĩa bởi USER= trong file /etc/init.d/pm2-init.sh. Tôi đã đảm bảo định nghĩa PM2_HOME trong tệp này cũng trỏ đến địa điểm chính xác. Tuy nhiên, nó vẫn không bắt đầu khởi động hệ thống!

+2

Tôi đang sử dụng pm2 trên Ubuntu 15.04, tôi đã thử tất cả các giải pháp có thể bắt đầu lưu nhưng không có gì khi khởi động lại máy chủ của tôi, vui lòng tư vấn? –

Trả lời

2

Vâng, tôi nghĩ điều này đã hiệu quả. Ban đầu tôi đã cố bắt đầu với tư cách là người dùng hệ thống (không có vỏ đăng nhập) được gọi là node-red chạy ứng dụng nút có cùng tên và khi điều đó không hoạt động, tôi đã thử bắt đầu với tư cách người dùng thông thường max. Sau khi một số khó khăn với những thứ nó đột nhiên bắt đầu làm việc, nhưng trên bộ xử lý Atom chậm này, ứng dụng nút chỉ bắt đầu một vài phút sau khi màn hình nền xuất hiện.

Để chạy ứng dụng dưới người dùng hệ thống: trước tiên, đăng nhập là max, tôi đã xóa tất cả các công việc pm2 và chạy pm2 save để tạo tệp kết xuất trống. Sau đó, tôi đã làm:

sudo npm install [email protected] -g 
pm2 update 

Để nhận phiên bản mới nhất, trong trường hợp có ích. Tôi chuyển từ 0.14.7 đến 0.15.7

Sau đó, tôi chạy

sudo su -c "env PATH=$PATH:/usr/bin pm2 startup ubuntu -u node-red" 

và chỉnh sửa /etc/init.d/pm2-init.sh chỉnh dòng mà bộ thư mục PM2_HOME vào thư mục nhà của node-red:

export PM2_HOME="/home/node-red/.pm2" 

Sau đó, Tôi đã trở thành phiên bản đăng nhập của người dùng node-red, được thay đổi thành thư mục chính của người dùng đó, bắt đầu công việc của tôi và lưu danh sách quy trình:

sudo -H -u node-red bash -l 
cd 
pm2 start /usr/local/bin/node-red --node-args="--max-old-space-size=128" -- -v -u /home/node-red/.node-red 
pm2 save 

Sau đó, tôi đã thoát khỏi vỏ của node-red, khởi động lại và (sau một phút hoặc lâu hơn) có ứng dụng chạy độc đáo!

Lưu ý rằng đây là ubuntu 14.04, sử dụng hệ thống init/upstart. Các phiên bản sau tôi nghĩ sử dụng phương thức systemd và có thể cần tham số ubuntu được thay đổi thành systemd khi tạo tập lệnh khởi động.

Tôi vẫn chưa thực sự chắc chắn tại sao nó không hoạt động đúng trong lần đầu tiên.

+0

dòng này ở đây 'xuất khẩu PM2_HOME ="/home/node-red/.pm2 "' là sửa chữa cho tôi. nó đã được xuất khẩu PM2_HOME = "/ root/.pm2" 'vì lý do nào đó – neelabh

5

Đối PM2 khởi động để làm việc, có một lệnh quan trọng chôn cất tại documentationhere.

Bạn phải 1) bắt đầu tất cả các quá trình của bạn, 2) tạo ra các kịch bản khởi động, và 3) chạy pm2 save

Tham chiếu đến @lazlojuly's answer here.

+0

Điều này làm việc tuyệt vời cho tôi - mà không có bất kỳ tùy chỉnh hack hoặc tuỳ biến để khởi động kịch bản trong kỹ thuật số của tôi Ubuntu Ubuntu giọt. – Red

+0

+1 Điên điều này không được bao gồm trong [tài liệu khởi động] của họ (http://pm2.keymetrics.io/docs/usage/quick-start/) – ow3n

0

tôi đang tìm kiếm công việc xung quanh cho bỏ trong khi cho đến khi tôi đến giải pháp

này sau khi thực hiện PM2 tiết kiệm

  1. tập tin này sẽ được tạo ra -> /etc/init.d/pm2-init sh
  2. sau đó trên tab cron @reboot gốc /etc/init.d/pm2-init.sh bắt đầu tương đương này để thực hiện nó trên cmd nhưng kích hoạt trên khởi động lại

tính năng này hiện đang hoạt động tốt cho tôi

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