Существует модуль с именем tp _smapi .
Например, вы можете изменить порог следующим образом:
echo 40 > /sys/devices/platform/smapi/BAT0/start_charge_thresh
echo 70 > /sys/devices/platform/smapi/BAT0/stop_charge_thresh
cat /sys/devices/platform/smapi/BAT0/*_charge_thresh
По ссылке также есть скрипт, который позволит выбрать аккумулятор, который будет разряжаться в первую очередь.
Не существует переносимого способа получить однозначное представление командной строки другого процесса. Вы не нашли ответ, который искали, потому что это невозможно. Вам либо нужно справиться с двусмысленным представлением,или использовать другой метод в зависимости от того, на какой ОС работает ваш код, или найти кого-то, кто сделал эту работу за вас.
Спецификация POSIX изps
не указывает точно, как форматируется поле args
, просто оно содержит «команду со всеми ее аргументами в виде строки» и что оно может быть усечено. На практике все реализации, которые я видел, объединяют аргументы с пробелом между ними. Это лучшее, что вы можете сделать с POSIX.
Если вам нужно однозначное представление аргумента командной строки процесса, вы можете найти его в /proc/PID/cmdline
в Linux и других вариантах Unix с файловой системой Solaris -, подобной proc (, а не в системах BSD, таких как macOS ). Аргументы разделены нулевыми байтами, которые не могут появляться в аргументе, поэтому представление однозначно. Я не думаю, что есть способ получить эту информацию с помощью утилиты Linux procps ps
, и даже если бы он был, он был бы специфичен для Linux, поэтому он не был бы более переносимым (менее переносимым, на самом деле, так как просмотр внутри /proc
работает даже на ядрах Linux, которые имеют другую утилиту ps
, такую как утилита BusyBox ).
Я не знаю, как получить однозначное представление аргументов командной строки в macOS.
Я знаю одну программу, которая сделала не -переносимую часть :библиотеки Python psutil. Я могу подтвердить, что это позволяет получить однозначное представление командной строки процесса в Linux. Это также должно работать на macOS, поскольку в документации не упоминается никаких ограничений, но я не проверял.
python3 -c 'import os, psutil; print(psutil.Process(os.getpid()).cmdline())'