Điểm:0

Cách làm cho plymouth hiển thị thông báo khi tắt máy, chuyển chế độ và làm cho pkcon hoạt động

lá cờ in

Tôi đang cố gắng viết một tập lệnh để a) cập nhật hệ thống trước khi tắt (không phải khi khởi động lại) và hiển thị tiến trình cho người dùng trên plymouth.

Cho đến nay, tôi đã quản lý để làm cho nó khởi động tập lệnh (đôi khi?) Khi tắt máy, nhưng nó cũng bắt đầu khi khởi động lại (sẽ được sửa).

[Đơn vị]
Mô tả=Cập nhật khi tắt máy
Before=poweroff.target pause.target shutdown.target
After=mạng-online.đích nhiều người dùng.đích

[Dịch vụ]
Loại=oneshot
ExecStart=/bin/true
RemainafterExit=true
ExecStop=/usr/share/services/shutdown_update
Thời gian chờSec=vô cùng

[Cài đặt]
WantedBy=poweroff.mục tiêu dừng.mục tiêu tắt máy.mục tiêu

Kịch bản thực tế là cái này:

#!/bin/sh

fun_update() {

    plymouth display-message --text "Aktualisierungen werden installiert..."
    chế độ thay đổi plymouth --updates
    cập nhật pkcon -p -y > /tmp/update_status.txt
    cập nhật = 0
    chế độ thay đổi plymouth --boot-up
    plymouth display-message --text "Aufräumen..."
    apt-get autoclean
    apt-get autoremove
    chế độ thay đổi plymouth --shutdown
}

fun_plymouth() {
    trong khi [ "$update" = 1 ]
    làm
        cập nhật hệ thống plymouth --progress $(cat /tmp/update_status.txt | grep -oP "(?<=Percentage: ).*" | tail -1)
        plymouth display-message --text "$(cat /tmp/update_status.txt | grep -oP "(?<=Percentage: ).*" | tail -1)%"
        ngủ 1
    xong
}
if echo systemctl list-jobs | egrep -q 'reboot.target.*start';
sau đó
thoát 0
fi
chế độ thay đổi plymouth --boot-up
cập nhật = 0
plymouth display-message --text 'Aktualisierung wird vorbereitet...'
plymouth display-message --text "Es wird nach Aktualisierungen gesucht..."
làm mới pkcon
update_list=$(pkcon get-updates)
tiếng vang $update_list
nếu ! tiếng vang "$update_list" | grep -q "Không có bản cập nhật nào vào lúc này."; sau đó
cập nhật = 1
fun_update & fun_plymouth & đợi
khác
plymouth display-message --text "Keine Aktualisierungen gefunden!"
ngủ 3
fi
tin nhắn hiển thị plymouth --text ""

Những chức năng này làm gì (hoặc những gì tôi muốn chúng làm) là để a) thông báo cho người dùng rằng hệ thống của anh ta sắp được cập nhật, b) bắt đầu cập nhật bằng pkcon và c) hiển thị phần giới thiệu cập nhật ngoại tuyến plymouth (phần giới thiệu đó là được hiển thị khi các bản cập nhật ngoại tuyến đang được cài đặt) và nhận tiến trình của pkcon để hiển thị cho người dùng (đó là lý do tại sao grep và tail -1, để chỉ nhận kết quả khớp cuối cùng).

Nhưng vì lý do nào đó, tôi cố gắng khởi động tập lệnh, nhưng không có thông báo plymouth nào được hiển thị và pkcon không khởi động hoặc khi khởi động thì không thành công. Có thể có rất nhiều vấn đề trong tập lệnh này, tôi đã không quản lý để gỡ lỗi, vì plymouth và systemd không thực sự hữu ích.

Mọi lời khuyên đều được chào đón! Cám ơn rất nhiều!

CHỈNH SỬA: Tôi đã cài đặt plymouth-x11 để kiểm tra tập lệnh của mình; thật thú vị, các lệnh được gửi bởi tập lệnh cũng bị bỏ qua ở đây khi chạy (ngay cả trong trình bao gốc), nhưng các lệnh chính xác này được nhập thủ công trong trình bao gốc vẫn hoạt động. Tôi cũng đã thêm dòng này để kiểm tra xem plymouth có đang chạy không:

plymouth --ping && echo plymouth đang chạy || echo plymouth KHÔNG chạy

và nó trả về nó đang chạy. Điều này không có ý nghĩa

EDIT2: Với plymouth-x11, tôi phát hiện ra rằng việc xóa (xóa các dòng) hàm update() và plymouth(), plymouth sẽ hiển thị thông báo.Thêm lại các chức năng sẽ phá vỡ nó một lần nữa. Ngoài ra, đặt lệnh plymouth phía trên các khai báo hàm sẽ làm cho chúng hoạt động trở lại.

EDIT3: Tôi đã xóa các chức năng và đặt mã vào một tệp bổ sung. Bây giờ nó hoạt động như mong đợi (ít nhất là trong môi trường thử nghiệm của tôi). Vì vậy, câu hỏi là: Tại sao tập lệnh của tôi bị hỏng khi tôi thêm các chức năng?

EDIT4: Không đặt tên chức năng của bạn như một lệnh bạn muốn gọi -_-

EDIT5: Vì vậy, tập lệnh sẽ không còn gì nữa khi tôi khởi động lại, nhưng vẫn vậy: plymouth không hiển thị bất kỳ thông báo nào và tập lệnh dường như không được gọi khi tắt máy. Đây là những vấn đề tôi biết ngay bây giờ, việc kiểm tra một tập lệnh không được gọi là khá khó. Tập lệnh hoạt động khi tôi bắt đầu plymouthd theo cách thủ công với plymouth-x11.

Tôi đang chạy Ubuntu 21.04

Tobi Peter avatar
lá cờ in
@guiverc vâng, bạn nói đúng, tôi xin lỗi. Tôi đang sử dụng Ubuntu 21.04. Tôi đã chỉnh sửa câu hỏi của mình khi tôi phát hiện ra rằng việc thêm các chức năng vào tập lệnh sẽ phá vỡ lệnh plymouth vì một số lý do

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