Lxc

是否可以辨識程序的 LXC 非特權容器所有者?

  • January 19, 2021

我有一個 linux 伺服器,Debian buster,為非特權容器配置了 LXC。我也有很多來自 sssd_be 的崩潰,來自伺服器的 dmesg 說:

dmesg|grep segfault

sssd_be[6739]: segfault at 8 ip 00007f080b190714 sp 00007ffc24a170a8 error 4 in libdbus-1.so.3.19.7[7f080b15d000+52000]
sssd_be[7517]: segfault at 8 ip 00007fec6ca4f714 sp 00007ffc71eec028 error 4 in libdbus-1.so.3.19.7[7fec6ca1c000+52000]
sssd_be[8853]: segfault at 8 ip 00007f9d181be714 sp 00007ffd42f784e8 error 4 in libdbus-1.so.3.19.7[7f9d1818b000+52000]
sssd_be[15961]: segfault at 8 ip 00007f1560855714 sp 00007ffc784710e8 error 4 in libdbus-1.so.3.19.7[7f1560822000+52000]
sssd_be[16728]: segfault at 8 ip 00007fa83b9df714 sp 00007fff1432b228 error 4 in libdbus-1.so.3.19.7[7fa83b9ac000+52000]
sssd_be[30789]: segfault at 8 ip 00007f0c21213714 sp 00007ffd37808908 error 4 in libdbus-1.so.3.19.7[7f0c211e0000+52000]
sssd_be[13515]: segfault at 8 ip 00007f67fd079714 sp 00007ffdae2dac78 error 4 in libdbus-1.so.3.19.7[7f67fd046000+52000]
sssd_be[26637]: segfault at 8 ip 00007fa775531714 sp 00007ffd3bd1b9a8 error 4 in libdbus-1.so.3.19.7[7fa7754fe000+52000]
sssd_be[4466]: segfault at 8 ip 00007f10cc150714 sp 00007ffe8e909a08 error 4 in libdbus-1.so.3.19.7[7f10cc11d000+52000]
sssd_be[11382]: segfault at 8 ip 00007f0bcddee714 sp 00007fffcd021998 error 4 in libdbus-1.so.3.19.7[7f0bcddbb000+52000]

我想辨識正在執行的程序導致崩潰的容器,怎麼辦?htop 報告 openvz 容器名稱,但不報告 lxc 容器名稱。所以我嘗試了 ps 但出現了非常奇怪的結果

ps -efww -O lxc
 PID LXC      S TTY          TIME COMMAND
31825 -        S pts/9    00:00:00 bash
1478 -        R pts/9    00:00:00  \_ ps

有什麼辦法可以看到容器的名稱?

我找到了解決方法。使用 ansible,並創建一個域正在執行 sssd_be 的腳本

#!/bin/sh
pgrep -a sssd
cat /etc/hostname

我用這個“劇本”執行腳本,它在標準輸出上顯示結果

- name: Transfer and execute a script.
 hosts: all
 become_user: root
 tasks:
 - script: script.sh
   register: results
 - debug:
     var: results.stdout

執行腳本後,我發現了兩個具有程序 sssd_be 的域,因此我禁用了該機器的 sssd,現在工作正常。

引用自:https://unix.stackexchange.com/questions/626422