是否可以识别进程的 LXC 非特权容器所有者?

是否可以识别进程的 LXC 非特权容器所有者?

我有一个 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

有什么办法可以看到容器的名称吗?

答案1

我找到了一个解决方法。使用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,现在工作正常。

相关内容