Điểm:1

dpgk --configure -a bị treo khi thiết lập tệp cơ sở, rõ ràng là trong systemd-tty-ask-password-agent

lá cờ vn

dpkg --configure -a bị treo khi thiết lập tập tin cơ sở. Từ chẩn đoán cho đến nay, nó xuất hiện dpkg --configure -a chạy /var/lib/dpkg/info/base-files.postinst, mà chạy deb-systemd-invoke bắt đầu motd-news.timer, mà thực thi systemd-tty-ask-password-agent --watch, chờ mãi mãi (không yêu cầu mật khẩu trên thiết bị đầu cuối). Chẩn đoán chi tiết:

$ sudo strace -o /tmp/dpkg-strace -tt -ff dpkg --debug=222 --configure -a
Đang thiết lập tệp cơ sở (11ubuntu5.4) ...
D000002: fork/exec /var/lib/dpkg/info/base-files.postinst ( cấu hình 11ubuntu5.3 )

Chạy cái này postinst tập lệnh thủ công với bash -xv treo trong khi thực hiện deb-systemd-invoke bắt đầu motd-news.timer, một cái gì đó cũng được tiết lộ bởi pstree (đối với trường hợp chạy không có dấu vết):

bashâââsudoâââdpkgâââbase-files.postâââsystemctlâââsystemd -tty-hỏi

Strace xuất ra khoảng 10 nghìn dòng. Một trong các tệp đầu ra strace, có vẻ tương ứng với lệnh deb-systemd-invoke bắt đầu motd-news.timer, kết thúc bằng một thăm dò ý kiến, dường như đang chờ một ổ cắm. Lựa chọn từ deb-systemd-invoke bắt đầu motd-news.timer (PID 51072):

10:50:46.673278 đóng(10) = 0
10:50:46.673319 execve("/usr/bin/deb-systemd-invoke", ["deb-systemd-invoke", "start", "motd-news.timer"], 0x56297d000c88 /* 37 vars */) = 0
10:50:46.673511 brk(NULL) = 0x55fff0539000
10:50:46.673534 arch_prctl(0x3001 /* ARCH_??? */, 0x7ffd593b7540) = -1 EINVAL (Đối số không hợp lệ)
10:50:46.673574 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (Không có tệp hoặc thư mục như vậy)
10:50:46.673613 openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
10:50:46.673641 fstat(3, {st_mode=S_IFREG|0644, st_size=160254, ...}) = 0
10:50:46.673663 mmap(NULL, 160254, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f3bdfb5e000
10:50:46.673686 đóng(3) = 0
10:50:46.673713 openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
[…]
10:50:46.708457 ổ cắm(AF_UNIX, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 3
[…]
10:50:46.710298 sendmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="l\1\4\1\24\0\0\0\2\0\0\0\227 \0\0\0\1\1o\0\31\0\0\0/org/fre"..., iov_len=168}, {iov_base="\17\0\0\0motd-news.timer \0", iov_len=20}], msg_iovlen=2, msg_controllen=0, msg_flags=0}, MSG_DONTWAIT|MSG_NOSIGNAL) = 188
10:50:46.710350 recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="l\2\1\0017\0\0\0\3\0\0\0007\0\0 \0\5\1u\0\2\0\0\0", iov_len=24}], msg_iovlen=1, msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_DONTWAIT|MSG_CMSG_CLOEXEC) = 24
10:50:46.710422 recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\7\1s\0\30\0\0\0org.freedesktop.systemd1"..., iov_len= 103}], msg_iovlen=1, msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_DONTWAIT|MSG_CMSG_CLOEXEC) = 103
10:50:46.710472 sendmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="l\1\4\19\0\0\0\3\0\0\0\250\0 \0\0\1\1o\0002\0\0\0/org/fre"..., iov_len=184}, {iov_base="\35\0\0\0org.freedesktop.systemd1.Uni". .., iov_len=57}], msg_iovlen=2, msg_controllen=0, msg_flags=0}, MSG_DONTWAIT|MSG_NOSIGNAL) = 241
10:50:46.710522 recvmsg(3, {msg_namelen=0}, MSG_DONTWAIT|MSG_CMSG_CLOEXEC) = -1 EAGAIN (Tài nguyên tạm thời không khả dụng)
10:50:46.710565 ppoll([{fd=3, events=POLLIN}], 1, {tv_sec=24, tv_nsec=999957000}, NULL, 8) = 1 ([{fd=3, revents=POLLIN}], trái {tv_sec=24, tv_nsec=999940266})
10:50:46.710626 recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="l\2\1\1\10\0\0\0\4\0\0\0007\0 \0\0\5\1u\0\3\0\0\0", iov_len=24}], msg_iovlen=1, msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_DONTWAIT|MSG_CMSG_CLOEXEC) = 24
10:50:46.710676 recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\7\1s\0\30\0\0\0org.freedesktop.systemd1"..., iov_len= 56}], msg_iovlen=1, msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_DONTWAIT|MSG_CMSG_CLOEXEC) = 56
10:50:46.710745 recvmsg(3, {msg_namelen=0}, MSG_DONTWAIT|MSG_CMSG_CLOEXEC) = -1 EAGAIN (Tài nguyên tạm thời không khả dụng)
10:50:46.710794 ppoll([{fd=3, events=POLLIN}], 1, NULL, NULL, 8

Nữa, systemd-tty-ask-password-agent --watch, kết thúc bằng thăm dò ý kiến, dường như đang đợi sự kiện socket hoặc inotify để mật khẩu xuất hiện. Lựa chọn cho 51076:

10:50:46.709061 set_robust_list(0x7fb46e4f98e0, 24) = 0
10:50:46.709158 prctl(PR_SET_NAME, "(sd-askpwagent)"...) = 0
10:50:46.709242 geteuid() = 0
10:50:46.709322 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fb46e9cd000
10:50:46.709349 prctl(PR_SET_MM, PR_SET_MM_ARG_START, 0x7fb46e9cd000, 0, 0) = 0
10:50:46.709371 prctl(PR_SET_MM, PR_SET_MM_ARG_END, 0x7fb46e9cd010, 0, 0) = 0
10:50:46.709393 prctl(PR_SET_PDEATHSIG, SIGTERM) = 0
10:50:46.709416 rt_sigaction(SIGHUP, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fb46e808210}, NULL, 8) = 0
10:50:46.709439 rt_sigaction(SIGINT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fb46e808210}, NULL, 8) = 0
10:50:46.709459 rt_sigaction(SIGQUIT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fb46e808210}, NULL, 8) = 0
[…]
10:50:46.711627 prlimit64(0, RLIMIT_NOFILE, NULL, {rlim_cur=512*1024, rlim_max=512*1024}) = 0
10:50:46.711660 prlimit64(0, RLIMIT_NOFILE, {rlim_cur=1024, rlim_max=512*1024}, NULL) = 0
10:50:46.711690 execve("/bin/systemd-tty-ask-password-agent", ["/bin/systemd-tty-ask-password-ag"..., "--watch"], 0x7ffce60ac808 / * 37 vars */) = 0
10:50:46.711926 brk(NULL) = 0x55abfc744000
10:50:46.711956 arch_prctl(0x3001 /* ARCH_??? */, 0x7ffe7027e8f0) = -1 EINVAL (Đối số không hợp lệ)
[…]
10:50:46.722618 đọc(3, "", 1024) = 0
10:50:46.722637 đóng(3) = 0
10:50:46.722659 stat("/run/systemd/ask-password-block", {st_mode=S_IFDIR|0700, st_size=160, ...}) = 0
10:50:46.722683 mknod("/run/systemd/ask-password-block/136:6", S_IFIFO|0600) = -1 EEXIST (Tệp tồn tại)
10:50:46.722706 openat(AT_FDCWD, "/run/systemd/ask-password-block/136:6", O_RDONLY|O_NOCTTY|O_NONBLOCK|O_CLOEXEC) = 3
10:50:46.722728 stat("/run/systemd", {st_mode=S_IFDIR|0755, st_size=520, ...}) = 0
10:50:46.722751 mkdir("/run/systemd/ask-password", 0755) = -1 EEXIST (Tệp tồn tại)
10:50:46.722779 stat("/run/systemd/ask-password", {st_mode=S_IFDIR|0755, st_size=40, ...}) = 0
10:50:46.722803 rt_sigprocmask(SIG_SETMASK, [HẠN], NULL, 8) = 0
10:50:46.722823 signalfd4(-1, [HẠN], 8, SFD_CLOEXEC|SFD_NONBLOCK) = 4
10:50:46.722845 inotify_init1(IN_CLOEXEC) = 5
10:50:46.722865 inotify_add_watch(5, "/run/systemd/ask-password", IN_CLOSE_WRITE|IN_MOVED_TO) = 1
10:50:46.722891 openat(AT_FDCWD, "/run/systemd/ask-password", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 6
10:50:46.722913 fstat(6, {st_mode=S_IFDIR|0755, st_size=40, ...}) = 0
10:50:46.722937 getdents64(6, /* 2 mục */, 32768) = 48
10:50:46.722959 getdents64(6, /* 0 mục */, 32768) = 0
10:50:46.722977 đóng(6) = 0
10:50:46.722995 thăm dò ý kiến([{fd=4, sự kiện=POLLIN}, {fd=5, sự kiện=POLLIN}], 2, -1

Quá trình chính và tập lệnh base-files.postinst dường như đang chờ với đợi 4 để các quá trình khác kết thúc:

10:50:46.017699 execve("/usr/bin/dpkg", ["dpkg", "--configure", "-a"], 0x7fffb1462800 /* 27 vars */) = 0
10:50:46.018044 brk(NULL) = 0x5636a8783000
10:50:46.018135 arch_prctl(0x3001 /* ARCH_??? */, 0x7fffa60dac50) = -1 EINVAL (Đối số không hợp lệ)
10:50:46.018208 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (Không có tệp hoặc thư mục như vậy)
10:50:46.018264 openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
10:50:46.018307 fstat(3, {st_mode=S_IFREG|0644, st_size=160254, ...}) = 0
10:50:46.018343 mmap(NULL, 160254, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fa02ba19000
10:50:46.018377 đóng(3) = 0
10:50:46.018416 openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libselinux.so.1", O_RDONLY|O_CLOEXEC) = 3
10:50:46.018450 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\ 0@p\0\0\0\0\0\0"..., 832) = 832
[…]
10:50:46.163945 fcntl(5, F_SETFD, FD_CLOEXEC) = 0
10:50:46.164043 fstat(5, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
10:50:46.164180 write(5, "#padding\n#padding\n#padding\n#padd"..., 4096) = 4096
10:50:46.164354 write(5, "padding\n#padding\n#padding\n#paddi"..., 512) = 512
10:50:46.164486 lseek(5, 0, SEEK_SET) = 0
10:50:46.164598 stat("/var/lib/dpkg/info/base-files.postinst", {st_mode=S_IFREG|0755, st_size=5664, ...}) = 0
10:50:46.164718 bản sao(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7fa02b7406d0) = 51032
10:50:46.165711 rt_sigaction(SIGQUIT, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fa02b840210}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
10:50:46.165855 rt_sigaction(SIGINT, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fa02b840210}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
10:50:46.166017 đợi4(51032,

10:50:46.165943 set_robust_list(0x7fa02b7406e0, 24) = 0
10:50:46.166455 chdir("/") = 0
10:50:46.166748 execve("/var/lib/dpkg/info/base-files.postinst", ["/var/lib/dpkg/info/base-files.po"..., "configure", " 11ubuntu5.3"], 0x5636a87c4840 /* 36 vars */) = 0
10:50:46.168230 brk(NULL) = 0x56297cffd000
10:50:46.168542 arch_prctl(0x3001 /* ARCH_??? */, 0x7fffc0915d90) = -1 EINVAL (Đối số không hợp lệ)
10:50:46.168877 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (Không có tệp hoặc thư mục như vậy)
10:50:46.169322 openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
10:50:46.169734 fstat(3, {st_mode=S_IFREG|0644, st_size=160254, ...}) = 0
10:50:46.169951 mmap(NULL, 160254, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f5c7351e000
10:50:46.170127 đóng(3) = 0
[…]
10:50:46.673001 đóng(1) = 0
10:50:46.673018 fcntl(11, F_SETFD, FD_CLOEXEC) = 0
10:50:46.673035 dup2(3, 1) = 1
10:50:46.673051 đóng(3) = 0
10:50:46.673068 stat("/usr/local/sbin/deb-systemd-invoke", 0x7fffc09159a0) = -1 ENOENT (Không có tệp hoặc thư mục như vậy)
10:50:46.673093 stat("/usr/local/bin/deb-systemd-invoke", 0x7fffc09159a0) = -1 ENOENT (Không có tệp hoặc thư mục như vậy)
10:50:46.673113 stat("/usr/sbin/deb-systemd-invoke", 0x7fffc09159a0) = -1 ENOENT (Không có tệp hoặc thư mục như vậy)
10:50:46.673132 stat("/usr/bin/deb-systemd-invoke", {st_mode=S_IFREG|0755, st_size=4430, ...}) = 0
10:50:46.673156 bản sao(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f5c7351d850) = 51072
10:50:46.673267 đợi4(-1,

Hầu hết những người khác kết thúc bằng "+++ đã thoát với 0 +++" và/hoặc tôi không thấy điều gì đáng ngờ.

Có vẻ như deb-systemd-invoke start motd-news.timerdeb-systemd-invoke start motd-news.timer có vẻ như đang đợi mật khẩu mãi mãi, nhưng không có yêu cầu nào hiển thị trong giao diện người dùng. Dựa theo lưu ý blog này, khởi động lại sẽ giải quyết vấn đề này:

Khá khó chịu khi systemd-tty-ask hoặc /bin/systemd-tty-ask-password-agent âwatch bị treo trong quá trình cài đặt gói, bắt đầu hoặc dừng hoạt động của dịch vụ.

Mặc dù việc khởi động lại hệ thống giải quyết được vấn đề, nhưng may mắn thay, chỉ cần khởi động lại trình quản lý systemd là đủ:

Sudo systemctl daemon-reexec

Tôi nghi ngờ đây là lỗi hệ thống vì daemon-reexec được cho là không làm gì đặc biệt ngoài việc khởi động lại daemon bằng cách đọc lại cấu hình.

Tuy nhiên, không thực hiện Sudo systemctl daemon-reexec cũng như không khởi động lại hệ thống đã giải quyết được sự cố. Chỉ sau khi hỏi câu hỏi này, tôi tìm thấy câu hỏi liên quan chặt chẽ này nhưng không có giải pháp thỏa đáng nào được đề xuất ở đó (tôi muốn tin rằng không cần cài đặt lại hệ thống).

Nó có vẻ như lỗi này trên launchpad có liên quan, có lẽ trực tiếp gây ra sự cố.

Làm thế nào tôi có thể vượt qua treo cổ dpkg --configure -a trên tập tin cơ sở? Có cách giải quyết nào đã biết khi thiếu cài đặt lại hệ thống không?

Điểm:0
lá cờ vn

Điều này cuối cùng có vẻ là do một lỗi trong systemd như đã báo cáo trên launchpad tại đây. Lỗi dẫn đến hệ thống bắt đầu ... treo khi đang chạy systemd-tty-ask-password-agent. Một số tập lệnh sau khi cài đặt chạy hệ thống bắt đầu (hay đúng hơn là anh chị em của nó khởi động deb-systemd-gọi), nhưng tôi không biết tại sao điều này bị treo trên một số hệ thống mà không phải hệ thống khác.

Nó có thể nhận được dpkg --configure -a để hoàn thành (hay đúng hơn là vẫn chưa hoàn thành) bằng cách chỉnh sửa /var/lib/dpkg/base-files.postinst và bỏ ghi chú dòng deb-systemd-invoke start 'motd-news.timer' >/dev/null || thật. Làm xong việc này, dpkg --configure -a được thông qua tập tin cơ sở kịch bản sau khi cài đặt. Tuy nhiên, đây không phải là một giải pháp thỏa đáng. Đầu tiên, việc không khởi động dịch vụ trong tập lệnh sau khi cài đặt có thể gây ra tác dụng phụ trên hệ thống. Thứ hai, vào ngày tiếp theo nâng cấp thích hợp, đpkg đã bị treo trong một tập lệnh sau khi cài đặt khác (trong trường hợp này apt.postinst), vì vậy người ta có thể phải định cấu hình bằng giải pháp thay thế cho khá nhiều gói, trong mỗi trường hợp đều có tác dụng phụ được xác định.

Giải pháp thay thế được đề xuất trong nhận xét về lỗi launchpad là chạy systemctl start --no-ask-password thay vào đó, không có sự khác biệt trong trường hợp của tôi.

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