[113067] Пытаясь получить представление о том, какая магия происходит за кулисами, ваш лучший друг - [113554] Стрэйс [113555]. Научиться работать с этим инструментом - одна из лучших вещей, которые вы можете сделать, чтобы получить лучшее представление о том, какое безумное волшебство происходит за кулисами.
Из приведенного выше вывода видно, что [113556]/proc/cpuinfo[113557] - это обычный файл, или, по крайней мере, он выглядит как таковой. Так что давайте копнуть глубже.
Глубже
#1[113559] - с ls...
Глядя на сам файл, кажется, что это "просто файл".
Но посмотрите внимательнее. Получим нашу первую подсказку, что он специальный, заметим, что размер файла 0 байт.
#2[113561] - со статистикой...
Если мы сейчас посмотрим на файл, используя [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:
/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 иногда называют псевдофайловой системой с информацией о процессе. Она не содержит ``реальные'' файлы, а информацию о системе во время выполнения (например, системная память, подключенные устройства, конфигурация оборудования и т.д.). По этой причине она может рассматриваться как центр управления и информации ядра. На самом деле, довольно много системных утилит - это простые обращения к файлам в этом каталоге. Например, команда lsmod, которая перечисляет модули, загруженные ядром, в основном та же самая, что и 'cat /proc/modules', а lspci, которая перечисляет устройства, подключенные к шине PCI системы, та же самая, что и 'cat /proc/pci'. Изменяя файлы, находящиеся в этом каталоге, Вы можете изменять параметры ядра во время работы системы.
sudo chmod +x /usr/local/bin/rename.pl
Источник:
Псевдофайловая система proc
References
Procfs - wikipedia
Я столкнулся с теми же проблемами, которые вы описали, но мне удалось получить стек-апплет
, работающий на Ubuntu 14.04.
Хитрость заключалась в том, чтобы вручную создать конфигурационный файл stackapplet
, ~/.stackapplet/config
:
Stop stackapplet
:
killall stackapplet.py.
Резервное копирование ~/.stackapplet/config
:
cp -a ~/.stackapplet/config ~/.stackapplet/config.bak
Заменить содержимое ~/.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
. Ваш идентификатор пользователя находится в верхнем правом углу страницы Вашего профиля:
Сохраните файл и запустите stackapplet
:
nohup /usr/share/stackapplet/stackapplet.py &>/dev/null &
Если вы хотите добавить больше аккаунтов, просто добавьте больше элементов в массив аккаунтов
. Хитрость здесь в том, чтобы узнать, что такое site
и site_name
для каждого
Сайт StackExchange:
сайт
- это URL сайта с . com
removesite_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}