Bất kỳ chuyên gia node.js nào có thể cho tôi biết cách định cấu hình nút JS để tự động khởi động máy chủ khi máy của tôi khởi động không? Tôi đang sử dụng Windows
Bất kỳ chuyên gia node.js nào có thể cho tôi biết cách định cấu hình nút JS để tự động khởi động máy chủ khi máy của tôi khởi động không? Tôi đang sử dụng Windows
Câu trả lời:
Đây hoàn toàn không phải là thứ để cấu hình trong node.js, đây hoàn toàn là trách nhiệm của hệ điều hành (trong trường hợp của bạn là Windows). Cách đáng tin cậy nhất để đạt được điều này là thông qua Dịch vụ Windows.
Có một mô-đun siêu dễ dàng này có thể cài đặt tập lệnh nút như một dịch vụ cửa sổ, nó được gọi là nút-cửa sổ ( npm , github , tài liệu ). Tôi đã sử dụng trước đây và làm việc như một sự quyến rũ.
var Service = require('node-windows').Service;
// Create a new service object
var svc = new Service({
name:'Hello World',
description: 'The nodejs.org example web server.',
script: 'C:\\path\\to\\helloworld.js'
});
// Listen for the "install" event, which indicates the
// process is available as a service.
svc.on('install',function(){
svc.start();
});
svc.install();
ps
Tôi thấy nó hữu ích đến mức tôi đã xây dựng một trình bao bọc xung quanh nó thậm chí còn dễ sử dụng hơn ( npm , github ).
Cài đặt nó:
npm install -g qckwinsvc
Cài đặt dịch vụ của bạn:
> qckwinsvc
prompt: Service name: [name for your service]
prompt: Service description: [description for it]
prompt: Node script path: [path of your node script]
Service installed
Gỡ cài đặt dịch vụ của bạn:
> qckwinsvc --uninstall
prompt: Service name: [name of your service]
prompt: Node script path: [path of your node script]
Service stopped
Service uninstalled
npm install qckwinsvc -g
Nếu bạn đang sử dụng Linux, macOS hoặc Windows pm2 là bạn của bạn. Đó là một trình quản lý quy trình xử lý các cụm rất tốt.
Bạn cài đặt nó:
npm install -g pm2
Bắt đầu một cụm, ví dụ, 3 quy trình:
pm2 start app.js -i 3
Và làm cho pm2 khởi động chúng khi khởi động:
pm2 startup
Nó có một API, thậm chí là một giao diện màn hình :

Truy cập github và đọc hướng dẫn . Nó dễ sử dụng và rất tiện dụng. Điều tốt nhất kể từ mãi mãi .
pm2 startupcần một trong các thông số nền tảng này: <ubuntu|centos|gentoo|systemd>, ví dụ:
$ pm2 startup # auto-detect platform $ pm2 startup [platform] # render startup-script for a specific platform, the [platform] could be one of: # ubuntu|centos|redhat|gentoo|systemd|darwin|amazon
Nếu tôi không nhầm, bạn có thể khởi động ứng dụng của mình bằng dòng lệnh và do đó cũng có thể sử dụng tệp lô. Trong trường hợp đó, khởi động nó bằng đăng nhập Windows không phải là một việc quá khó.
Bạn chỉ cần tạo một tệp hàng loạt với nội dung sau:
node C:\myapp.js
và lưu nó với phần mở rộng .bat. Đây myapp.js là ứng dụng của bạn, trong ví dụ này nằm trong C: drive (spcify the path).
Bây giờ, bạn chỉ có thể ném tệp hàng loạt vào thư mục khởi động của mình ở C: \ Users \% username% \ AppData \ Roaming \ Microsoft \ Windows \ Start Menu \ Programs \ Startup
Chỉ cần mở nó bằng cách sử dụng% appdata% trong hộp run dailog và tìm đến> Chuyển vùng> Microsoft> Windows> Start Menu> Programs> Startup
Tệp lô sẽ được thực thi tại thời điểm đăng nhập và khởi động ứng dụng nút của bạn từ cmd.
Điều này có thể dễ dàng được thực hiện theo cách thủ công với Windows Task Scheduler.
Sau đó, tạo một tệp hàng loạt có chứa thông tin sau:
cd C:\path\to\project\root
call C:\Users\Username\AppData\Roaming\npm\forever.cmd start server.js
exit 0
Cuối cùng, tạo một tác vụ đã lên lịch chạy khi bạn đăng nhập. Tác vụ này sẽ gọi tệp hàng loạt.
Tôi khuyên bạn nên cài đặt ứng dụng node.js của mình dưới dạng dịch vụ Windows, sau đó đặt dịch vụ này chạy khi khởi động. Điều đó sẽ giúp kiểm soát hành động khởi động dễ dàng hơn một chút bằng cách sử dụng phần mềm Windows Services thay vì phải thêm hoặc xóa hàng loạt tệp trong thư mục Khởi động.
Một câu hỏi khác liên quan đến dịch vụ trong Stackoverflow đã cung cấp một vài lựa chọn thực sự tốt (thực sự). Kiểm tra Cách cài đặt node.js dưới dạng Dịch vụ Windows . node-windows trông thực sự hứa hẹn với tôi. Ngoài ra, tôi đã sử dụng các công cụ tương tự cho các ứng dụng Java cần chạy dưới dạng dịch vụ. Nó làm cho cuộc sống của tôi dễ dàng hơn rất nhiều. Hi vọng điêu nay co ich.
Sử dụng pm2 để bắt đầu và chạy các quy trình nodejs của bạn trên windows.
Hãy nhớ đọc cuộc thảo luận trên github này về cách thiết lập trình lên lịch tác vụ để bắt đầu pm2: https://github.com/Unitech/pm2/issues/1079
Đây là một giải pháp khác mà tôi đã viết trong C # để tự động khởi động máy chủ nút gốc hoặc máy chủ pm2 trên Windows.
Tôi biết có nhiều cách để đạt được điều này theo các giải pháp được chia sẻ ở trên. Tôi chưa thử tất cả chúng nhưng một số dịch vụ của bên thứ ba thiếu rõ ràng xung quanh tất cả các tác vụ đang được chạy trong nền là gì. Tôi đã đạt được điều này thông qua một tập lệnh powershell tương tự như tập lệnh được đề cập dưới dạng tệp loạt cửa sổ. Tôi đã lên lịch nó bằng cách sử dụng Windows Tasks Scheduler để chạy mỗi phút. Điều này đã khá hiệu quả và minh bạch cho đến nay. Lợi thế mà tôi có ở đây là tôi đang kiểm tra quy trình một cách rõ ràng trước khi bắt đầu lại. Điều này sẽ không gây ra nhiều chi phí cho CPU trên máy chủ. Ngoài ra, bạn không cần phải đặt tệp một cách rõ ràng vào các thư mục khởi động.
function CheckNodeService ()
{
$node = Get-Process node -ErrorAction SilentlyContinue
if($node)
{
echo 'Node Running'
}
else
{
echo 'Node not Running'
Start-Process "C:\Program Files\nodejs\node.exe" -ArgumentList "app.js" -WorkingDirectory "E:\MyApplication"
echo 'Node started'
}
}
CheckNodeService
Được sao chép trực tiếp từ câu trả lời này :
Bạn có thể viết một tập lệnh bằng bất kỳ ngôn ngữ nào bạn muốn để tự động hóa việc này (thậm chí sử dụng nodejs) và sau đó chỉ cần cài đặt một lối tắt đến tập lệnh đó trong thư mục% appdata% \ Microsoft \ Windows \ Start Menu \ Programs \ Startup