Điểm:1

Tách quy trình khỏi luồng thực thi

lá cờ cn

Tôi đang khởi chạy tập lệnh có quy tắc udev trên mọi kết nối thiết bị usb. Vấn đề là tôi cần tập lệnh này để khởi chạy một tập lệnh khác sau 20 giây.

Đây là mật mã.

#!/bin/bash
#
ngủ 20
/'Kịch bản khác'

Vấn đề là làm như thế này với sự chậm trễ của hoạt động gắn kết udev, điều tôi không muốn xảy ra.

Đã thử điều này:

#!/bin/bash
#
nohup bash /'Tập lệnh khác' & 
fg

Đặt phần chờ bên trong 'Tập lệnh khác'.

GIẢI QUYẾT

Quy tắc udev đã được khởi chạy với RUN {type}, đó là vấn đề, nó không thể xử lý quá trình dài, tôi chỉ cần tạo một dịch vụ systemd và kích hoạt nó bằng ENV{SYSTEMD_WANTS} trên các quy tắc udev và giống như lụa.

Làm cái này:

/etc/udev/rules.d/99-usb.rules

    ACTION=="add", ENV{SYSTEMD_WANTS}="usb.service"

/etc/systemd/system/usb.service

    [Đơn vị]
    Mô tả=USB Autorun.
    
    [Dịch vụ]
    Loại=oneshot
    ExecStart=/Script.sh

/Script.sh

    #!/bin/bash
    #
    ngủ 20
    /'Kịch bản khác'
lá cờ in
Một tùy chọn có thể là `bash other.sh & disown`
Jobesmor avatar
lá cờ cn
tôi đã thử nhưng có một hành vi kỳ lạ, tôi đã đọc một chút hóa ra là nếu một quá trình đầu cuối 'khởi chạy' kết thúc trước khi 'khởi chạy' thì quá trình cuối cùng cũng bị đóng, sự thật thú vị là vào cuối ngày 18.04, hoạt động như lụa, nhưng cần nó hoạt động ít nhất vào ngày 16.04
bac0n avatar
lá cờ cn
tham khảo hướng dẫn sử dụng `udev` `RUN{type}`
bac0n avatar
lá cờ cn
Liên quan: [Tại sao quy tắc udev của tôi không hoạt động?](https://askubuntu.com/a/1222166/986805)
Zanna avatar
lá cờ kr
Bài đăng được liên kết có giải quyết được sự cố của bạn không?
muru avatar
lá cờ us
Bắt đầu một đơn vị systemd không nên chặn udev, vì vậy đó là cách bạn nên làm thay vì loay hoay với giấc ngủ và không có gì.
fuzzy drawings avatar
lá cờ tj
Anh ấy có thể sử dụng `at now -f scrip2.sh` để khởi chạy tập lệnh khác. Điều đó cũng sẽ không chặn `udev`. OP cho biết anh ấy cần độ trễ 20 giây vì bất kỳ lý do gì, do đó, việc để `script2.sh` bắt đầu bằng `sleep 20` sẽ hoạt động mà không yêu cầu mục nhập `.service` systemd.
Jobesmor avatar
lá cờ cn
Tôi cũng đã thử với "at now -f" và sử dụng "sleep" khi bắt đầu tập lệnh, không hiệu quả với tôi, một lần nữa tôi không thực sự chắc chắn nguyên nhân phù thủy trên 18+ có hiệu quả hay 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.