Почему некоторые части скрипта, активируемого правилом udev, не работают? (Используйте xinput для установки ускорения мыши при подключении)

Мне нравится простой ответ Шридхара, но я бросил свой собственный, прежде чем попробовал его:

#! /usr/bin/python3

import json, psutil, datetime, sys, time

while True:
  print(json.dumps((datetime.datetime.now().isoformat(),
                    psutil.Process(int(sys.argv[1])).memory_info()._asdict())))
  time.sleep(1)

В основном это полезно, только если вам нужен структурированный вывод. Примечание:_asdict()не работало в некоторых версиях Python 3.5; он снова работает в Python 3.6.9, хотя (, а также в Python 2.7.17 ).

Вывод выглядит как:

["2019-03-19T11:21:53.784670", {"rss": 220389376, "vms": 538984448, "shared": 15724544, "text": 303104, "lib": 0, "data": 221364224, "dirty": 0}]
["2019-03-19T11:21:54.786136", {"rss": 220438528, "vms": 539119616, "shared": 15724544, "text": 303104, "lib": 0, "data": 221499392, "dirty": 0}]
["2019-03-19T11:21:55.787555", {"rss": 220495872, "vms": 539119616, "shared": 15724544, "text": 303104, "lib": 0, "data": 221499392, "dirty": 0}]
["2019-03-19T11:21:56.788754", {"rss": 220528640, "vms": 539119616, "shared": 15724544, "text": 303104, "lib": 0, "data": 221499392, "dirty": 0}]

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

0
03.07.2020, 16:44
1 ответ

Я нашел ответ:

The xinput settings only work in an X context. But they are not run e.g. from a terminal started in your desktop manager.

напр.

ACTION=="add", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c084", ENV{DISPLAY}=":0.0", ENV{XAUTHORITY}="/home/administrator/.Xauthority", RUN+="/some/script.sh"

Подробнее об этом можно прочитать здесь , здесь и здесь .

0
18.03.2021, 23:22

Теги

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