Điểm:0

Cách xử lý systemd.service theo luồng nhưng độc lập

lá cờ in

Tôi có một ứng dụng java với 4 tiến trình đang chạy (trên Ubuntu 20.04LTS), tham khảo hình bên dưới. Dịch vụ 1 bắt đầu trước 2+, Dịch vụ 2 cũng sẽ bắt đầu dịch vụ 3 và 4. Tôi đã thiết lập 1 và 2 đơn giản và hoạt động.

phụ thuộc dịch vụ, dịch vụ 2 bắt đầu dịch vụ 3 và 4

Tuy nhiên, dịch vụ 3 và 4 có thể dừng/khởi động lại độc lập với dịch vụ 2. Có cách nào để triển khai điều này vào định nghĩa dịch vụ app-service4.service không? tôi đã xem bài đăng trên blog mô tả một trường hợp tương tự, vì vậy, dựa trên cơ sở đó, tôi nghĩ việc xác định dịch vụ 3 và 4 bằng "PartOf" dịch vụ 2 có thể là một cách, nhưng làm thế nào để dịch vụ 3 và 4 hiểu rằng dịch vụ 2 đã bắt đầu?

Dưới đây là dịch vụ2.service

[Đơn vị]
Mô tả=Dịch vụ 2

Sau=service1.service

[Dịch vụ]   
ExecStart=/usr/local/bin/service2.sh bắt đầu
ExecStop=/usr/local/bin/service2.sh dừng

[Cài đặt]
WantedBy=default.target

Sau khi khởi động, trạng thái trên dịch vụ hiển thị CGroup như bên dưới (pid và tên, v.v. được đơn giản hóa)

/system.slice/service2.service
 |- 123 /bin/sh /usr/local/bin/service2.sh bắt đầu
 |- 124 java dịch vụ2
 |- 125 java dịch vụ3
 |- 126 java dịch vụ4

Vậy làm cách nào để thêm một dịch vụ3.service cho phép tôi gỡ xuống/khởi động lại dịch vụ3 mà không chấm dứt dịch vụ2? Dưới đây là nỗ lực của tôi không thể hiểu được dịch vụ2 đang chạy.

[Đơn vị]
Mô tả=Dịch vụ 3
PartOf=service2.service
    
[Dịch vụ]   
ExecStart=/usr/local/bin/service3.sh bắt đầu
ExecStop=/usr/local/bin/service3.sh dừng

[Cài đặt]
WantedBy=default.target

Với thiết lập này sau khi service2 được bắt đầu, "systemctl status service2" hiển thị các quy trình service2-servic4 như đã đề cập ở trên và "systemctl status service 3" hiển thị là "không hoạt động (đã chết)". Nỗ lực khởi động dịch vụ 3 (systemctl start service3) kết thúc giống như vậy (vì nó đang chạy, lệnh bắt đầu kết thúc khi lệnh dừng được thực thi). Nếu tôi thử khởi động lại, nó sẽ bắt đầu như một dịch vụ riêng biệt .

Tôi muốn trình nền hiểu rằng quy trình trong dịch vụ-2 thực sự là dịch vụ-3, do đó dịch vụ-3 sẽ xuất hiện dưới dạng đang chạy. Điều này có thể không? Nếu không - có cách giải quyết nào để cho phép xử lý riêng các dịch vụ không?

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.