Tôi gặp sự cố với thiết lập systemd của mình. Tôi có một dịch vụ khởi động môi trường MEAN-Stack trên máy chủ.
[Đơn vị]
Mô tả=Máy chủ giao diện người dùng
After=mạng.mục tiêu phụ trợ.dịch vụ
[Dịch vụ]
Loại = đơn giản
Người dùng=meanrunner
ExecStart=/somepath/server.sh
Khởi động lại = luôn luôn
WorkingDirectory=/somepath/
[Cài đặt]
WantedBy=multi-user.target
Bây giờ tôi đã thêm một quy trình triển khai tự động và để nó hoạt động, tôi đã thêm tệp .path và .service cho mọi dịch vụ để khởi động lại chúng khi quá trình triển khai diễn ra.
[Con đường]
Đơn vị=frontend-watcher.service
PathChanged=/đường dẫn nào đó
[Cài đặt]
WantedBy=multi-user.target
[Đơn vị]
Mô tả=trình khởi động lại giao diện người dùng
Sau=mạng.mục tiêu
[Dịch vụ]
Loại=oneshot
ExecStart=/usr/bin/systemctl khởi động lại frontend.service
[Cài đặt]
WantedBy=multi-user.target
Cho đến nay nó thực sự hoạt động với một vấn đề. Thiết lập đang kích hoạt quá nhanh và quá thường xuyên vì trình theo dõi được kích hoạt cho mọi tệp đã tải lên. Có một thông báo lỗi do điều này nhưng nó vẫn hoạt động và các tệp được cập nhật (trang web chạy mã mới).
Bây giờ tôi đã tự hỏi nếu có một cách để thay đổi hành vi. Tốt nhất là chỉ kích hoạt sau khi tải lên xong. Ý tưởng duy nhất của tôi (người mới sử dụng máy chủ) là tải lên một tệp cuối cùng sau mỗi lần triển khai và chỉ xem một tệp này. Bằng cách đó, nó sẽ chỉ kích hoạt ở cuối một lần. Nhưng tôi nghĩ có thể có một cách tốt hơn.