StackApplet не работает в Linux Mint 17.1

[113067] Пытаясь получить представление о том, какая магия происходит за кулисами, ваш лучший друг - [113554] Стрэйс [113555]. Научиться работать с этим инструментом - одна из лучших вещей, которые вы можете сделать, чтобы получить лучшее представление о том, какое безумное волшебство происходит за кулисами.

Из приведенного выше вывода видно, что [113556]/proc/cpuinfo[113557] - это обычный файл, или, по крайней мере, он выглядит как таковой. Так что давайте копнуть глубже.


Глубже

enter image description here

#1[113559] - с ls...

Глядя на сам файл, кажется, что это "просто файл".

Но посмотрите внимательнее. Получим нашу первую подсказку, что он специальный, заметим, что размер файла 0 байт.

#2[113561] - со статистикой...

Screenshot

Если мы сейчас посмотрим на файл, используя [113562]stat[113563], то получим нашу следующую подсказку, что есть нечто особенное в [113564]/proc/cpuinfo[113565].

run #1

run #2

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

#3[113567] - с файлом...

Еще одна подсказка, что этот файл не является обычным файлом:


Если бы это было какое-то проявление именованного канала, то он показал бы, что похож на один из этих файлов:


Если мы коснемся [113568] пустого файла[113569], [113570]/proc/cpuinfo[113571] действительно будет больше похож на файл, чем на канал:

#4[113573] - с монтированием. .

Так что на этом этапе нам нужно сделать шаг назад и немного уменьшить масштаб. Мы смотрим на конкретный файл, но, возможно, нам стоит посмотреть на файловую систему, на которой находится этот файл. Для этого мы можем использовать команду [113574]mount[113575].


OK, то есть тип файловой системы - [113576]proc[113577]. Итак, [113578]/proc[113579] - это другой тип файловой системы, это наша подсказка, что файлы под [113580]/proc[113581] - специальные. Это не просто ваш запуск файлов mill. Поэтому давайте узнаем больше о том, что делает файловую систему [113582]proc[113583] специальной.

tar xfj filename.tar.bz2 | 7z a -si filename.7z

Взглянув на man-страницу [113584]mount[113585]:

tar xfz filename.tar.gz | 7z a -si filename.7z

Файловая система proc не связана со специальным устройством, и при её монтировании можно использовать произвольное ключевое слово, например, proc, вместо характеристики устройства. (Обычный выбор none менее удачен: сообщение об ошибке `none busy' from umount может сбить с толку)

И если мы посмотрим на man page:

Файловая система proc - это псевдо-файловая система, которая используется в качестве интерфейса к структурам данных ядра. Она обычно монтируется в /proc. Большая ее часть доступна только для чтения, но некоторые файлы позволяют изменять переменные ядра.

Немного дальше в том же man page:

cross-ref options

/proc/cpuinfo

Это набор элементов, зависящих от процессора и системной архитектуры, для каждой поддерживаемой архитектуры свой список. Два общих списка - процессор, который дает номер процессора и богомипы; системная константа, которая вычисляется при инициализации ядра. Машины SMP имеют информацию для каждого процессора. Команда lscpu(1) собирает свою информацию из этого файла.

echo -n "Hello World "; uptime

Внизу страницы справочника находится ссылка на документ ядра под названием: [113596]THE /proc FILESYSTEM[113597]. Цитата из этого документа:

>UnxUtils\bin\sh
WINCOMP# echo -n "Hello "; echo World
Hello World

Файловая система proc действует как интерфейс к внутренним структурам данных в ядре. Она может быть использована для получения информации о системе и изменения определенных параметров ядра во время выполнения (sysctl).

Выводы

Так что же мы здесь узнали? Ну, учитывая, что [113600]/proc[113601] называется псевдофайловой системой, а также "интерфейсом к внутренним структурам данных", наверное, можно с уверенностью предположить, что элементы в ней являются [113602]не[113603] реальными файлами, а скорее просто проявлениями, сделанными похожими на файлы, но на самом деле это не так.

sudo  path/to/file

Я закрою эту цитату, которая, по-видимому, была в предыдущей версии [113604]man 5 proc[113605] примерно с 2004 года, но по каким-то причинам больше не включается. [113606]ПРИМЕЧАНИЕ:[113607] Я не уверен, почему она была удалена, поскольку в ней очень хорошо описано, что такое [113608]/proc[113609]:

Каталог /proc в системах GNU/Linux предоставляет файловую систему, подобную интерфейсу ядра. Это позволяет приложениям и пользователям получать информацию и устанавливать значения в ядре с помощью обычной операции ввода/вывода файловой системы.

Файловую систему proc иногда называют псевдофайловой системой с информацией о процессе. Она не содержит ``реальные'' файлы, а информацию о системе во время выполнения (например, системная память, подключенные устройства, конфигурация оборудования и т.д.). По этой причине она может рассматриваться как центр управления и информации ядра. На самом деле, довольно много системных утилит - это простые обращения к файлам в этом каталоге. Например, команда lsmod, которая перечисляет модули, загруженные ядром, в основном та же самая, что и 'cat /proc/modules', а lspci, которая перечисляет устройства, подключенные к шине PCI системы, та же самая, что и 'cat /proc/pci'. Изменяя файлы, находящиеся в этом каталоге, Вы можете изменять параметры ядра во время работы системы.

sudo chmod +x /usr/local/bin/rename.pl

Источник:

enter image description here

Псевдофайловая система proc

References

Procfs - wikipedia

2
13.04.2017, 15:25
1 ответ

Я столкнулся с теми же проблемами, которые вы описали, но мне удалось получить стек-апплет , работающий на Ubuntu 14.04.

Хитрость заключалась в том, чтобы вручную создать конфигурационный файл stackapplet, ~/.stackapplet/config:

  1. Stop stackapplet:

    killall stackapplet.py.
    
  2. Резервное копирование ~/.stackapplet/config:

    cp -a ~/.stackapplet/config ~/.stackapplet/config.bak
    
  3. Заменить содержимое ~/.stackapplet/config на:

    {"тема": "свет", "счета": [{"unread_reputation": 0, "last_comment_ts": 1433419194, "site_name": "Unix и Linux", "unread_comments": 0, "сайт": "unix.stackexchange", "reputation_on_last_poll": 313, "уведомления": 0, "user_id": "26238", "last_answer_ts": 1433419196, "unread_answers": 0}], "язык": "", "refresh_rate": 600000}
    

    Да, это длинная линия данных JSON . Не претендуйте на это, иначе applestack беззвучно проигнорирует config и перезапишет его при выходе с помощью конфигурационного файла по умолчанию. Обратите внимание, что config не имеет символа конца строки, то есть в конце строки данных JSON отсутствует \n.

    Теперь найдите и откорректируйте значение ключа user_id. Ваш идентификатор пользователя находится в верхнем правом углу страницы Вашего профиля:

    enter image description here

  4. Сохраните файл и запустите stackapplet:

    nohup /usr/share/stackapplet/stackapplet.py &>/dev/null &
    

Если вы хотите добавить больше аккаунтов, просто добавьте больше элементов в массив аккаунтов . Хитрость здесь в том, чтобы узнать, что такое site и site_name для каждого Сайт StackExchange:

  • сайт - это URL сайта с . com remove
  • site_name is the site's "pretty name"

These are the sites I have currently configured in my config file:

 "site_name": "Ask Ubuntu"
 "site": "ubuntu.stackexchange"
 "site_name": "Unix and Linux"
 "site": "unix.stackexchange"
 "site_name": "Stack Overflow"
 "site": "stackoverflow"
 "site_name": "Server Fault"
 "site": "serverfault"
 "site_name": "Super User"
 "site": "superuser"
 "site_name": "Ask Different"
 "site": "apple.stackexchange"
 "site_name": "Ask Different Meta"
 "site": "meta.apple.stackexchange"

As reference, my config file is:

{"theme": "light", "accounts": [{"unread_reputation": 0, "last_comment_ts": 1433419181, "site_name": "Ask Ubuntu", "unread_comments": 0, "site": "ubuntu.stackexchange", "reputation_on_last_poll": 134, "notifications": 0, "user_id": "100272", "last_answer_ts": 1433419183, "unread_answers": 0}, {"unread_reputation": 0, "last_comment_ts": 1433419194, "site_name": "Unix and Linux", "unread_comments": 0, "site": "unix.stackexchange", "reputation_on_last_poll": 313, "notifications": 0, "user_id": "26238", "last_answer_ts": 1433419196, "unread_answers": 0}, {"unread_reputation": 0, "last_comment_ts": 1433419207, "site_name": "Stack Overflow", "unread_comments": 0, "site": "stackoverflow", "reputation_on_last_poll": 167, "notifications": 0, "user_id": "881191", "last_answer_ts": 1433419208, "unread_answers": 0}, {"unread_reputation": 0, "last_comment_ts": 1433419186, "site_name": "Server Fault", "unread_comments": 0, "site": "serverfault", "reputation_on_last_poll": 411, "notifications": 0, "user_id": "134501", "last_answer_ts": 1433419187, "unread_answers": 0}, {"unread_reputation": 0, "last_comment_ts": 1433419190, "site_name": "Super User", "unread_comments": 0, "site": "superuser", "reputation_on_last_poll": 3061, "notifications": 0, "user_id": "156041", "last_answer_ts": 1433419191, "unread_answers": 0}, {"unread_reputation": 0, "last_comment_ts": 1433419199, "site_name": "Ask Different", "unread_comments": 0, "site": "apple.stackexchange", "reputation_on_last_poll": 6681, "notifications": 0, "user_id": "32815", "last_answer_ts": 1433419202, "unread_answers": 0}, {"unread_reputation": 0, "last_comment_ts": 1433419200, "site_name": "Ask Different Meta", "unread_comments": 0, "site": "meta.apple.stackexchange", "reputation_on_last_poll": 6681, "notifications": 0, "user_id": "32815", "last_answer_ts": 1433419203, "unread_answers": 0}], "language": "", "refresh_rate": 600000}
2
27.01.2020, 22:12

Теги

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