Список текущих наблюдений inotify (путь, PID)

Вы можете использовать программу xinput для управления периферийными устройствами ввода, включая (де) их активацию.См. Прокрутка движений мыши при нажатой средней кнопке для получения подробного руководства. Вкратце, запустите xinput list , чтобы определить имя или числовой идентификатор сенсорной панели, затем

xinput --set-prop 'name of touchpad device' 'Device Enabled' 0

Для повторного включения измените окончательный 0 на 1 . Для переключения вы можете использовать

enabled=$(xinput --list-props 'name of touchpad device' | sed -n 'y/\t/ /; s/^ *Device Enabled ([0-9]*): *//p')
xinput --set-prop 'name of touchpad device' 'Device Enabled' $((1-enabled))

Поместите команду отключения где-нибудь в сценарии запуска X. Где его разместить, зависит от среды вашего рабочего стола и от того, как вы начинаете свой X-сеанс. Если вы запускаете X вручную с помощью startx , он попадает в ~ / .xinitrc . Если вы запустите свой собственный сценарий X-сеанса ( ~ / .xsession ), эта команда перейдет туда. Если вы используете предопределенный сеанс в графическом диспетчере входа в систему, это зависит от типа вашего сеанса и от диспетчера отображения; многие, но не все системы запускают команды из ~ / .xprofile перед запуском диспетчера сеансов или диспетчера окон.

Это включает или отключает сенсорную панель на программном уровне, который может не быть взаимозаменяемым с кнопкой рядом с сенсорной панелью.

В качестве альтернативы, большинство сенсорных панелей поддерживают отключение сенсорной панели при вводе .

6
18.08.2017, 15:46
2 ответа

Возможно, fdinfoдля fd часов может быть полезен:

$ readlink /proc/$(pgrep inotify)/fd/3
anon_inode:inotify
$ cat /proc/$(pgrep inotify)/fdinfo/3
pos:    0
flags:  00
mnt_id: 11
inotify wd:1 ino:357a sdev:700000 mask:fff ignored_mask:0 fhandle-bytes:8 fhandle-type:1 f_handle:7a35000000000000

sdevкажется комбинацией старших :младших номеров устройств, как видно из выходных данных lsblk, например:

$ lsblk | grep 7
loop0    7:0    0  80.5M  1 loop /snap/core/2462

(Я действительно наблюдал /snap/core/2462.)

Для моего /dev/sda1, то есть 8:1, вывод выглядел так:

pos:    0
flags:  00
mnt_id: 11
inotify wd:1 ino:aae1b sdev:800001 mask:fff ignored_mask:0 fhandle-bytes:8 fhandle-type:1 f_handle:1bae0a0038e16969

Этого должно быть достаточно, чтобы выяснить, что блокирует размонтирование, даже если в списке нет конкретных отслеживаемых каталогов или файлов.

5
27.01.2020, 20:28

(Незавершенный ответ)

Благодаря ответу муру за кикстарт.

Использование информации в/proc/[pid]/fdinfo/[fd#]:

Возможно, lsof :перечисляет только файлы определенного типа с a_inode.

Слишком медленный как сценарий оболочки со всеми greping. Возможно интерфейс системного вызова для информации /proc .

2
27.01.2020, 20:28

Теги

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