cuốn sách gpt4 ai đã làm

Khởi động lại NodeJS bằng cách thực thi tập lệnh PHP từ NodeJS

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-04 02:19:32 34 4
mua khóa gpt4 Nike

Tôi gặp sự cố khi cập nhật thư mục và triển khai lại nội dung của thư mục đó. Tôi phải sử dụng NodeJS và có cổng 8080 để sử dụng. Tôi cố gắng tạo tập lệnh php (update.php):

echo exec("git pull");
echo exec("node app.js");
?>

Bây giờ tôi muốn bắt đầu cập nhật tập lệnh NodeJS, với mục tiêu cuối cùng là có thể khởi động lại máy chủ.

Tôi sử dụng mô-đun tốc hành:

app.get('/Update', function(req,res) {
exec("php update.php", function(error, stdout, stderr) {
quá trình.exit(0);
}
}

Vấn đề là khi máy chủ NodeJS nhận được phản hồi từ tập lệnh nhưng tập lệnh cố gắng khởi động máy chủ NodeJS thì nó sẽ thoát. Điều này rõ ràng sẽ không xảy ra vì nó đã chạy trên cổng được chỉ định.

Bây giờ tôi đã tìm thấy trên google bằng cách sử dụng một mô-đun có tên là "nodemon" nhưng tôi không có quyền truy cập sudo nên không thể cài đặt nó. Các kết quả khác đang được sử dụng

nút grep ps |
giết -9 PROCESS_ID

Điều này cũng tạo ra vấn đề vì rất khó để định cấu hình tập lệnh PHP để tiêu diệt một tiến trình đã chỉ định, nhưng ngoài ra còn có các máy chủ NodeJS khác đang chạy trong các thư mục con khác của thư mục mẹ nhất định. Điều này có nghĩa là nếu tôi sử dụng "killall node", tôi sẽ khiến rất nhiều người tức giận vì tôi đã giết máy chủ của họ.

Cách tốt nhất để giải quyết vấn đề này là chỉ sử dụng cổng 8080 và muốn triển khai các thay đổi trong kho Github khi một liên kết được truy cập là gì?

câu trả lời hay nhất

Có thể chạy thông qua lệnh Node.jsquy trình.pidLấy id tiến trình của Node.

Sau đó, bạn có thể tạo một tập lệnh bash thực thi tất cả các lệnh và cung cấp PID trong một biến môi trường.

1) Quên cập nhật.php

2) Tuyến đường

app.get('/update', function(req, res) {
var spawn = require('child_process').spawn;
sinh sản('sh', [ 'update.sh' ], {
env: { NODE_PID: process.pid }
});
});

3) cập nhật.sh

kéo git
giết -9 $NODE_PID
nút app.js

Về javascript - Khởi động lại NodeJS bằng cách thực thi tập lệnh PHP từ NodeJS, chúng tôi tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/34153167/

34 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress