Điểm:0

Tùy chọn after= không hoạt động trong tệp dịch vụ systemd

lá cờ in

Tôi có hai tập lệnh Shell tên là first.sh và second.sh. Nội dung của first.sh và second.sh được đưa ra dưới đây:

    >>đầu tiên.sh
    #!/bin/bash
    trong khi đúng
    làm 
        echo Thời gian hiện tại là $(date)
        ngủ(1)
    xong



    >>thứ hai.sh
    #!/bin/bash
    trong khi đúng
    làm 
        echo Thời gian hiện tại từ tập lệnh thứ hai là $(date)
        ngủ(1)
    xong

Tương tự, nội dung của first.service là:

[Đơn vị]
Mô tả=dịch vụ đầu tiên
After=second.service
[Dịch vụ]
ExecStart=/home/abanstola/first.sh

Nội dung của second.service là:

[Đơn vị]
Mô tả=Dịch vụ thứ hai
[Dịch vụ]
ExecStart=/home/abanstola/second.sh

Lưu ý After=second.service trong mã đầu tiên.service. Theo các tài liệu, dịch vụ đầu tiên sẽ không chạy cho đến khi dịch vụ thứ hai bắt đầu. Nhưng ngay cả khi tôi tắt hoặc dừng dịch vụ thứ hai, dịch vụ đầu tiên vẫn chạy mà không gặp vấn đề gì. Tôi làm gì sai ở đây?

Điểm:0
lá cờ in

Bạn đọc sai tài liệu. Trích dẫn:

nếu đơn vị foo.service chứa cài đặt Trước=bar.service và cả hai đơn vị đang được bắt đầu, thanh.dịch vụquá trình khởi động bị trì hoãn cho đến khi foo.service đã khởi động xong. Sau = là nghịch đảo của Before=

Làm nổi bật bởi tôi. Điều này chỉ có tác dụng nếu cả hai thiết bị đang được khởi động. Nếu bạn vô hiệu hóa một trong số chúng, nó sẽ không có hiệu lực.

Nó không hoàn toàn rõ ràng những gì bạn thực sự muốn.

Có lẽ lựa chọn tốt hơn là:

yêu cầu =

tương tự như muốn =, nhưng tuyên bố một phụ thuộc yêu cầu mạnh mẽ hơn. Các phần phụ thuộc của loại này cũng có thể được cấu hình bằng cách thêm một liên kết tượng trưng vào một .đòi hỏi/ thư mục đi kèm với tập tin đơn vị.

Nếu thiết bị này được kích hoạt, các thiết bị được liệt kê cũng sẽ được kích hoạt. Nếu một trong các đơn vị khác không kích hoạt được và phụ thuộc thứ tự Sau = trên thiết bị bị lỗi được đặt, thiết bị này sẽ không được khởi động. Bên cạnh đó, có hoặc không có chỉ định Sau =, thiết bị này sẽ bị dừng nếu một trong các thiết bị khác bị dừng rõ ràng.

Một phần của =

Định cấu hình các phụ thuộc tương tự như yêu cầu =, nhưng giới hạn ở việc dừng và khởi động lại thiết bị. Khi systemd dừng hoặc khởi động lại các đơn vị được liệt kê ở đây, hành động sẽ được truyền đến đơn vị này. Lưu ý rằng đây là sự phụ thuộc một chiều â các thay đổi đối với đơn vị này không ảnh hưởng đến các đơn vị được liệt kê.

Ajay Banstola avatar
lá cờ in
Được rồi, vậy nó có tác dụng gì nếu tôi bắt đầu từng cái một? Tôi không muốn đạt được bất cứ điều gì cụ thể. Tôi chỉ muốn xem tác dụng của "Sau =". Cảm ơn bạn đã làm rõ.

Đă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.