Автор Тема: Simply Linux 8.2.0 / После завершения сеанса остаются играющие процессы  (Прочитано 5840 раз)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 147
    • Email
Всем привет!

Такие процессы остаются после завершения сеанса пользователя:
sidorov+  2848  0.0  0.2  72712  7628 ?        Ss   13:32   0:00 /lib/systemd/systemd --user
sidorov+  2871  0.0  0.0 232860  2724 ?        S    13:32   0:00 (sd-pam)
sidorov+  2941  0.0  0.1  54692  4784 ?        Ss   13:32   0:00 /bin/dbus-daemon --session --address=systemd: --nofork --nopidfile --systemd-activation
sidorov+  2951  0.0  0.1 346744  5740 ?        Ssl  13:32   0:00 /usr/libexec/at-spi-bus-launcher
sidorov+  2965  0.0  0.1  54048  4088 ?        S    13:32   0:00 /bin/dbus-daemon --config-file=/usr/share/defaults/at-spi2/accessibility.conf --nofork --print-address 3
sidorov+  3011  0.0  0.1  63124  5340 ?        S    13:32   0:00 /usr/lib64/xfce4/xfconf/xfconfd
sidorov+  3047  0.0  0.1 283520  7040 ?        Ssl  13:32   0:00 /usr/libexec/gvfs/gvfsd
sidorov+  3078  0.1  0.8 268772 32412 ?        Sl   13:32   0:00 /usr/bin/python3 /usr/share/system-config-printer/applet.py
sidorov+  3104  0.0  0.6 585920 23900 ?        SNl  13:32   0:00 /usr/libexec/tumbler-1/tumblerd
sidorov+  3105  0.0  0.2 926260  9276 ?        Ssl  13:32   0:00 /usr/libexec/gvfs/gvfs-udisks2-volume-monitor
sidorov+  3125  0.0  0.2 361360  7496 ?        Ssl  13:32   0:00 /usr/libexec/gvfs/gvfs-afc-volume-monitor
sidorov+  3130  0.0  0.1 265356  5804 ?        Ssl  13:32   0:00 /usr/libexec/gvfs/gvfs-goa-volume-monitor
sidorov+  3134  0.0  0.9 118226244 33396 ?     Sl   13:32   0:00 /usr/libexec/goa-daemon
sidorov+  3148  0.0  0.2 290200  9496 ?        Sl   13:32   0:00 /usr/libexec/goa-identity-service
sidorov+  3153  0.0  0.2 279484  8312 ?        Ssl  13:32   0:00 /usr/libexec/gvfs/gvfs-gphoto2-volume-monitor
sidorov+  3157  0.0  0.0   4196   680 ?        S    13:32   0:00 /usr/sbin/rfkill event
sidorov+  3158  0.0  0.1 267292  5688 ?        Ssl  13:32   0:00 /usr/libexec/gvfs/gvfs-mtp-volume-monitor
sidorov+  3166  0.0  0.1 359532  7160 ?        Sl   13:32   0:00 /usr/libexec/gvfs/gvfsd-trash --spawner :1.15 /org/gtk/gvfs/exec_spaw/0
sidorov+  3187  0.0  0.1 191432  4136 ?        Ssl  13:32   0:00 /usr/libexec/gvfs/gvfsd-metadata
sidorov+  3461  0.1  0.9 268788 32984 ?        Sl   13:33   0:00 /usr/bin/python3 /usr/share/system-config-printer/applet.py
sidorov+  3502  0.0  0.0   4196   736 ?        S    13:33   0:00 /usr/sbin/rfkill event

Заметил, потому что у меня pam_mount не отключает сетевой каталог по завершению сеанса.

Как быть ? Куда копать ?
Сноси Винду, переходи на Линукс ! :)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 147
    • Email
Но честно говоря, даже:
pkill -9 -u sidorovне отключает сетевой каталог.
Сноси Винду, переходи на Линукс ! :)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 147
    • Email
Поубирал всё из автозапуска, теперь по завершению сеанса некоторое время процессы висят, а потом завершаются. Но сетевой каталог так и не отключается. Я вообще в журнале даже ошибок не вижу. Вот, например, при подключении есть упоминание в логах, а при отключении как будто ничего не пытается даже сделать.

Я же правильно пишу в конфиге pam_mount:
<cifsmount>/sbin/mount.cifs //%(SERVER)/%(VOLUME) %(MNTPT) -o %(OPTIONS)</cifsmount>
<umount>/bin/umount %(MNTPT)</umount>

Такие права на umount по умолчанию установлены:
$ ll /bin/umount
-rws--x--x 1 root root 27552 июн 28 14:27 /bin/umount

???
Сноси Винду, переходи на Линукс ! :)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 147
    • Email
Интересная штука, локальным пользователем вообще не могу смонтировать каталог через pam_mount. Но в логе хотя бы есть ошибка:
systemd[27393]: (pam_mount.c:538): *** PAM_MOUNT WAS INVOKED WITH INSUFFICIENT PRIVILEGES. (euid=485)
systemd[27390]: Reached target Shutdown.
systemd[27393]: (pam_mount.c:539): *** THIS IS A BUG OF THE CALLER. CONSULT YOUR DISTRO.
systemd[27390]: Starting Exit the Session...
systemd[27393]: (pam_mount.c:540): *** Also see bugs.txt in the pam_mount source tarball/website documentation.
systemd[27390]: Started Exit the Session.
systemd[27704]: (spawn.c:130): error setting uid to 0: Operation not permitted

Кто может дать правильные рекомендации по подключению шар через pam_mount ?
Сноси Винду, переходи на Линукс ! :)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 147
    • Email
Насчёт размонтирования мне похоже сюда https://wiki.archlinux.org/index.php/Talk:Pam_mount#automatic_unmounting_and_systemd

Но почему при монтировании такая ошибка вылазит, непонятно...
Сноси Винду, переходи на Линукс ! :)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 147
    • Email
Ну вот что не так:
# cat /etc/pam.d/common-login
#%PAM-1.0
auth substack system-auth
auth required pam_nologin.so
auth include shares
account substack system-auth
account required pam_nologin.so
account include shares
password include system-auth
password include shares
session substack system-auth
session required pam_loginuid.so
session include shares
-session optional pam_systemd.so
# cat /etc/pam.d/shares
#%PAM-1.0

auth      optional                   pam_mount.so
password  optional                   pam_mount.so
session   required                   pam_mkhomedir.so     skel=/etc/skel umask=0022
session   optional                   pam_mount.so

Эта ошибка никак не пропадает, когда монтирую локальным пользователем:
<volume uid="500" fstype="cifs" dnssd_lookup="0" server="192.168.1.70" path="disk2" mountpoint="/home/%(USER)/Рабочий стол/Сеть/disk2" options="guest" />systemd[27393]: (pam_mount.c:538): *** PAM_MOUNT WAS INVOKED WITH INSUFFICIENT PRIVILEGES. (euid=485)
systemd[27393]: (pam_mount.c:539): *** THIS IS A BUG OF THE CALLER. CONSULT YOUR DISTRO.
systemd[27393]: (pam_mount.c:540): *** Also see bugs.txt in the pam_mount source tarball/website documentation.
systemd[27704]: (spawn.c:130): error setting uid to 0: Operation not permitted
« Последнее редактирование: 28.06.2019 20:54:42 от berkut_174 »
Сноси Винду, переходи на Линукс ! :)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 147
    • Email
user="500"
uid="500"

Теперь монтируется, но также после завершения сеанса сетевой каталог не отключается.
Сноси Винду, переходи на Линукс ! :)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 147
    • Email
Кто подскажет, на какой компонент повесить баг ?

Проверил на p9, там играющих процессов нет, но каталог также не отключается по завершению сеанса.
Сноси Винду, переходи на Линукс ! :)

Оффлайн klark973

  • Завсегдатай
  • *
  • Сообщений: 662
  • Неспящий саппорт
Кто может дать правильные рекомендации по подключению шар через pam_mount ?
Не использую pam_mount. А зачем? Предлагалось такое решение. Ну и, на всякий, повторюсь.

Кто подскажет, на какой компонент повесить баг ?
На pam_mount, очевидно.
To moan or to solve -- that is the question!

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 147
    • Email
А зачем?
Так удобней, я привык, давненько им пользуюсь.

На pam_mount, очевидно.
Хм, у меня два LTSP-сервера на SysVinit и такой проблемы там не наблюдал...
Может всё-таки на systemd ?
Проблема-то как раз в нём, что он корректно не даёт отработать pam_mount.
Сноси Винду, переходи на Линукс ! :)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 147
    • Email
В конфиге pam_mount вижу такие строки:
<!-- requires ofl from hxtools to be present -->
<logout wait="20" hup="yes" term="yes" kill="yes" />

Пакета hxtools в репах не наблюдаю. В сети встречал рекомендации поиграться с этими параметрами. Это вообще актуальный комментарий ?
Сноси Винду, переходи на Линукс ! :)

Оффлайн klark973

  • Завсегдатай
  • *
  • Сообщений: 662
  • Неспящий саппорт
Может всё-таки на systemd ?
Проблема-то как раз в нём, что он корректно не даёт отработать pam_mount.
THIS IS A BUG OF THE CALLER.

systemd в данном случае не является вызывающей стороной, всё дело в настройке PAM-стека. Посмотрел код: assert_root() определяется и вызывается только в pam_mount.c, в двух местах: pam_sm_open_session() и pam_sm_close_session(). Лог сокращён, поэтому непонятно. Но по идее в первом месте никак не должно. А со вторым интереснее:
        ret = HX_init();
        if (ret <= 0)
                l0g("libHX init failed: %s\n", strerror(errno));
        ret = PAM_SUCCESS;
        w4rn("received order to close things\n");
        assert_root();
То бишь после успешной инициализации libHX и предупреждения может вылазить при неверной настройке PAM-стека (параметр debug можно добавить в стек). Эту пару функций открытия/закрытия сессии должен вызывать менеджер сеансов, работающий с привилегиями root. Интересная библиотека: apt-cache show libHX и удивительно, что её инициализация начинается при закрытии сеанса. Кто в вашем случае является вызывающей стороной и клиентом libpam0? LightDM? SLiM?

Пакета hxtools в репах не наблюдаю.
Да, такого не держим. А документация и конфиг прямо говорят, что ofl нужен и зачем: to support kill-on-logout. LibHX и hxtools когда-то были частью этого проекта, видимо потом отделились. В том числе поэтому пользователи pam_mount должны страдать, я считаю. Архитектура этого решения в корне неправильна, коряквы при отмонтировании неизбежны при таком подходе.

Ну вот что не так:
В документации предлагается иной способ настройки стека и конфига pam_mount:
1) https://www.altlinux.org/ActiveDirectory/Login#Через_pam_mount
2) https://www.altlinux.org/SSSD/AD#Через_pam_mount
« Последнее редактирование: 29.06.2019 00:26:48 от klark973 »
To moan or to solve -- that is the question!

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 147
    • Email
debug
Включил.

LightDM
lightdm

В документации предлагается иной способ настройки стека и конфига pam_mount
Я так всегда и делал, но тут подумал что-то изменилось и начал экспериментировать по-всякому.

И так, включил debug, стал поразговорчивей. Здесь, например, https://forum.ubuntu.ru/index.php?topic=273361.0 при выходе сообщается "going to unmount", а у меня такой фразы вообще нет, такое чувство, что размонтировать даже не пытается.
Сноси Винду, переходи на Линукс ! :)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 147
    • Email
А кто-нибудь может у себя проверить на других DM, например, воспроизводится ли проблема ?
Сноси Винду, переходи на Линукс ! :)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 147
    • Email
Проверил на p9, там играющих процессов нет, но каталог также не отключается по завершению сеанса.
На p8 решил так:
$ grep '^session-cleanup-script' /etc/lightdm/lightdm.conf
session-cleanup-script=/bin/sh -c '! test $USER || sleep 10 && pkill -9 -u $USER &'

Хотя и написано "session-cleanup-script = Script to run when quitting a user session (runs as root)", но на самом деле скрипт запускается от имени пользователя.

PS. Этот скрипт ещё почему-то запускается при открытии сеанса, поэтому добавил проверку, странно работает тоже в общем...
« Последнее редактирование: 29.06.2019 12:40:06 от berkut_174 »
Сноси Винду, переходи на Линукс ! :)