Как создать / удалить $ XDG_RUNTIME_DIR при входе в систему / вход в систему

Вы можете попробовать это решение :

TODO для clickpad для работы со светодиодным индикатором:

(Включить предлагаемый архив для Ubuntu 12,04: https://wiki.ubuntu.com/Testing/EnableProposed После dist-upgrade выполните Это:)

  1. Создайте xserver-xorg-input-synaptics с веденным пакетом поддержки:

     mkdir tmpbuild
    cd tmpbuild
    apt-get источник
    xserver-xorg-input-synaptics d
    cd xserver-xorg-input-synaptics- */debian/patches
    wget https://bugs.launchpad.net/ubuntu/+source/linux/ + bug/582809/+ attachment/3183411/+ files/200-add _ led _ support _ с помощью _ double _ tap-synaptics-1.6.0-mohegan _ V1.patch
    ls -1 2 * .patch > > серия
    кд ../..
    sudo apt-get build-dep xserver-xorg-input-synaptics
    debchange -i
    

    Добавьте комментарии соммы (например, «Add LED support with двойной выстрел») и выйдите.

      debuild -us -uc -i -I
    sudo dpkg -i ../xserver-xorg-input-synaptics_*.deb
    
  2. Создайте модуль dkms для psmouse

      cd..
    apt-get source linux-image- 'uname -r'
    sudo mkdir -p/usr/src/psmouse- 'uname -r '/src
    sudo cp linux- */drivers/input/mouse/*/usr/src/psmouse- 'uname -r '/src/
    sudo gedit/usr/src/psmouse- 'uname -r '/dkms.conf
    

    поместите этот текст, сохраните файл и выход gedit: (remplace версия ядра по тексту получить с помощью команды uname -r . Для меня это 2.6.38-9-generic)

      PACKAGE _ NAME = "psmouse" PACKAGE_VERSION="_your ядро "version_
    CLEAN = «rm -f *. * o»
    
    BUILT_MODULE_NAME[0]="psmouse «MAKE [0] =» сделать -C $ kernel _ source _ dir
    M = $ dkms _ tree/$ PACKAGE _ NAME/$ PACKAGE _ VERSION/build/src psmouse.ko "
    BUILT_MODULE_LOCATION[0]="src «DEST_MODULE_LOCATION[0]="/updates»
    
    AUTOINSTALL = «да»
    

    Закройте файл и:

      wget https://bugs.launchpad.net/ubuntu/+source/linux/ + ошибка/582809/+ вложение/3183441/+ files/synaptics _ led _ support _ v2-ubuntu _ 12,04 .patch -P/tmp
    cd/usr/src/psmouse- 'uname -r'
    sudo patch -p1 -i/ tmp/synaptics_led_support_v2-ubuntu_12.04.patch > sudo dkms добавить -m psmouse -v 'uname -r'
    sudo dkms build -m psmouse -v 'uname -r'
    sudo dkms установить -m psmouse -v 'uname -r'
    

    3) Перезагрузите компьютер и наслаждайтесь!

Исправления предназначены для 1,6 источников, поэтому вам придется немного изменить их для работы с 1,8

-121--76501-

Каталоги являются специальными файлами , поэтому они имеют inodes.

Можно проверить, что с помощью ls :

ls -li

или с помощью stat :

stat -c '%F : %i : %n' *

Пример:

% stat -c '%F : %i : %n' *
regular file : 670637 : bar.csv
regular file : 656301 : file.txt
directory : 729178 : foobar

Число в середине является номером inode.

-121--78925-

Да, это.
Используйте stat * имя каталога * для получения номера inode

1
22.10.2018, 09:35
2 ответа

Каталог /run/user/N, служба user@Nи переменная окружения XDG_RUNTIME_DIRуправляются специальным подключаемым модулем аутентификации systemd -и службой logind. В первом журнале -они создают каталог, создают смонтированную там файловую систему и запускают службу; и в последнем журнале -они останавливают службу, размонтируют файловую систему и удаляют каталог. Это поведение меняется, когда для учетной записи установлен параметр systemd linger.

Другие системы работают иначе.

Дополнительная литература

3
27.01.2020, 23:31

Установить/создать $XDG_RUNTIME_DIRпри входе в систему

  • Использовать существующий $XDG_RUNTIME_DIR, если он установлен.
  • В противном случае используйте systemd's /run/user/$UID, если он существует
  • В противном случае создайте и используйте/tmp/$USER-runtime

Проверьте владельца и разрешения для$XDG_RUNTIME_DIR

  • Создайте и используйте /tmp/"$USER"-runtime-XXXXXX, если разрешения не подходят.
if [ -z "$XDG_RUNTIME_DIR" ]; then  # It's not already set
  XDG_RUNTIME_DIR=/run/user/$UID  # Try systemd created path
  if [ ! -d "$XDG_RUNTIME_DIR" ]; then
    # systemd-created directory doesn't exist
    XDG_RUNTIME_DIR=/tmp/$USER-runtime
    if [ ! -d "$XDG_RUNTIME_DIR" ]; then  # Doesn't already exist
      mkdir -m 0700 "$XDG_RUNTIME_DIR"
    fi
  fi
fi
# Check dir has got the correct type, ownership, and permissions
if ! [[ -d "$XDG_RUNTIME_DIR" && -O "$XDG_RUNTIME_DIR" &&
    "$(stat -c '%a' "$XDG_RUNTIME_DIR")" = 700 ]]; then
  echo "\$XDG_RUNTIME_DIR: permissions problem with $XDG_RUNTIME_DIR:" >&2
  ls -ld "$XDG_RUNTIME_DIR" >&2
  XDG_RUNTIME_DIR=$(mktemp -d /tmp/"$USER"-runtime-XXXXXX)
  echo "Set \$XDG_RUNTIME_DIR=$XDG_RUNTIME_DIR" >&2
fi
0
17.04.2020, 17:37

Теги

Похожие вопросы