Мне нравится простой ответ Шридхара, но я бросил свой собственный, прежде чем попробовал его:
#! /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}]
Для меня было важно иметь структурированный вывод, чтобы мне было легче использовать его для анализа.
Я нашел ответ:
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"