LINUX.ORG.RU

Сообщения olegd

 

AttributeError: module '__wsgi__' has no attribute 'application'

Поставил mod_wsgi-express, попробовал запустить сервер, ранее нормально работавший с Flask, получил ошибку 500.

Запускаю командой:

mod_wsgi-express start-server server.py --port 8081 --host localhost

Получаю следующий лог с ошибкой:

$ cat /tmp/mod_wsgi-localhost:8081:1000/error_log
[Mon Mar 26 03:28:55.639890 2018] [mpm_event:notice] [pid 19429:tid 140449802274688] AH00489: Apache/2.4.18 (Ubuntu) mod_wsgi/4.6.2 Python/3.5 configured -- resuming normal operations
[Mon Mar 26 03:28:55.639969 2018] [core:notice] [pid 19429:tid 140449802274688] AH00094: Command line: 'apache2 (mod_wsgi-express) -f /tmp/mod_wsgi-localhost:8081:1000/httpd.conf -D MOD_WSGI_WITH_LISTENER_HOST -D MOD_WSGI_MPM_ENABLE_EVENT_MODULE -D MOD_WSGI_MPM_EXISTS_EVENT_MODULE -D MOD_WSGI_MPM_EXISTS_WORKER_MODULE -D MOD_WSGI_MPM_EXISTS_PREFORK_MODULE -D FOREGROUND'
[Mon Mar 26 03:28:55.978568 2018] [wsgi:error] [pid 19431:tid 140449802274688] mod_wsgi (pid=19431): Failed to exec Python script file '/tmp/mod_wsgi-localhost:8081:1000/handler.wsgi'.
[Mon Mar 26 03:28:55.978608 2018] [wsgi:error] [pid 19431:tid 140449802274688] mod_wsgi (pid=19431): Exception occurred processing WSGI script '/tmp/mod_wsgi-localhost:8081:1000/handler.wsgi'.
[Mon Mar 26 03:28:55.979490 2018] [wsgi:error] [pid 19431:tid 140449802274688] Traceback (most recent call last):
[Mon Mar 26 03:28:55.979518 2018] [wsgi:error] [pid 19431:tid 140449802274688]   File "/tmp/mod_wsgi-localhost:8081:1000/handler.wsgi", line 94, in <module>
[Mon Mar 26 03:28:55.979523 2018] [wsgi:error] [pid 19431:tid 140449802274688]     recorder_directory=recorder_directory)
[Mon Mar 26 03:28:55.979530 2018] [wsgi:error] [pid 19431:tid 140449802274688]   File "/usr/local/lib/python3.5/dist-packages/mod_wsgi/server/__init__.py", line 1414, in __init__
[Mon Mar 26 03:28:55.979534 2018] [wsgi:error] [pid 19431:tid 140449802274688]     self.application = getattr(self.module, callable_object)
[Mon Mar 26 03:28:55.979552 2018] [wsgi:error] [pid 19431:tid 140449802274688] AttributeError: module '__wsgi__' has no attribute 'application'

mod_wsgi-express ставил через pip. Дистрибутив — Ubuntu 16.04. Сгенерированный handler.wsgi: https://pastebin.com/DPx5kgwK

Что ему не нравится в handler.wsgi?

Update: «Hello,world» из документации: https://modwsgi.readthedocs.io/en/develop/user-guides/quick-configuration-gui... заработал. Похоже, проблема в вызываемом приложении.

Ответ: По умолчанию Апач вызывает «application». В handler.wsgi это задаётся как callable_object = 'application'. В моём случае имя оказалось другим. Проблема решилась автозаменой в server.py. Также можно воспользоваться ключом --callable-object.

 , ,

olegd
()

«А включаешь — не работает»

Написал ini-шник для запуска сервиса, добавил его через systemctl enable, проверил старт-стоп-рестарт через systemctl start, stop и restart. Перезагружаю машину — не запускается. Что я упустил?

Конфиг:

$ cat /etc/systemd/system/machine.service
[Unit]
Description=Machine in Docker
Requires=docker.service
After=docker.service

[Service]
ExecStart=/usr/bin/docker run machine
Более сложный вариант:
$ cat /etc/systemd/system/machine.service
[Unit]
Description=Machine in Docker
Requires=docker.service
After=docker.service

[Service]
ExecStart=/bin/sh -c '/usr/bin/docker run -d machine > /var/run/machine.key'
ExecStop=/bin/sh -c '/usr/bin/docker stop `cat /var/run/machine.key`'

Ручной запуск:

$ curl -I localhost
curl: (7) Failed to connect to localhost port 80: Connection refused
$ sudo systemctl enable machine
$ sudo systemctl start machine
$ curl -I localhost
HTTP/1.0 302 FOUND

Но после ребута сервер сам не запускается.

Добавление в конфиг

[Install]
WantedBy=default.target
или
[Install]
WantedBy=multu-user.target
ничего не меняет.

Дистрибутив — Ubuntu 16.04. Но хотелось бы ответ без привлечения Upstart.

Что сделать, чтобы запускался после ребута?

UPDATE:

journalctl -e после запуска показывает строку «systemd[1]: Started Machine in Docker.» Но сервер не работает.

Ответ: в секции [Service] не хватало

Type=oneshot
RemainAfterExit=yes

 

olegd
()

Лог заголовков активного окна

Существует ли какая-то программа, которая вела бы лог, на каком окне в данный момент фокус? И могла бы суммировать, сколько времени какое окно было активно.

Пока нашёл только самописные программы вроде https://bbs.archlinux.org/viewtopic.php?id=200866

 

olegd
()

Как сделать регулярное выражение регистро-независимым?

В конфиге Metricbeat есть список регулярных выражений (по правилам Lucene), по которым фильтруются добавляемые в поисковик данные. В моём случае это — просто список слов в ASCII. Требуется, чтобы эти слова искались вне зависимости от регистра.

Пока обрабатываю файл-список командой

sed 's/[Aa]/[Aa]/g; s/[Bb]/[Bb]/g; s/[Cc]/[Cc]/g; s/[Dd]/[Dd]/g; s/[Ee]/[Ee]/g; s/[Ff]/[Ff]/g; s/[Gg]/[Gg]/g; s/[Hh]/[Hh]/g; s/[Ii]/[Ii]/g; s/[Jj]/[Jj]/g; s/[Kk]/[Kk]/g; s/[Ll]/[Ll]/g; s/[Mm]/[Mm]/g; s/[Nn]/[Nn]/g; s/[Oo]/[Oo]/g; s/[Pp]/[Pp]/g; s/[Qq]/[Qq]/g; s/[Rr]/[Rr]/g; s/[Ss]/[Ss]/g; s/[Tt]/[Tt]/g; s/[Uu]/[Uu]/g; s/[Vv]/[Vv]/g; s/[Ww]/[Ww]/g; s/[Xx]/[Xx]/g; s/[Yy]/[Yy]/g; s/[Zz]/[Zz]/g'
и вставляю в конфиг. Некрасиво. Громоздко. Можно улучшить?

------------------------------------------------------------

Ответ:

Команду для sed можно записать короче:

sed 's/\([A-Za-z]\)/[\u\1\l\1]/g'

А в самом списке вместо имён можно поставить

'(?i:firefox)'

 ,

olegd
()

Packetbeat не принимает конфиги

Помогите, пожалуйста, разобраться с конфигом в YAML.

Настраиваю Packetbeat для Elastic Stack. Пытаюсь сделать так, чтобы писались пакеты только от 2 машин. Постоянно получаю ошибку «beat.go:625: CRIT Exiting: error initializing publisher: error initializing processors: each processor needs to have exactly one action, but found 2 actions»

Пробовал более простые настройки из мануала. Когда записываю фильтр в 1 строку — всё нормально:

processors:
  - drop_event.when.equals.http.response.code: 200
А в 2 строки и больше — ошибка.
processors:
  - drop_event:
    when.equals.http.response.code: 200
processors:
  - drop_event:
    when:
      equals:
        http.response.code: 200
Я чего-то не понимаю в YAML? Какая разница?

Дополнение.

processors:
  - drop_event:
      when.equals.http.response.code: 200
Работает. Вроде, нормально.

Насколько я помню, в других программах в YAML следующая запись:

word1:
  - word2:
    word3: value
была эквивалентна «word1.0.word2.word3: value»

Здесь это не сработало, и многострочная запись соответствует чему то вроде «word1: {0.word2: null, word3: value}»

Кто неправ? Я или packetbeat?

Ответ: я.

 ,

olegd
()

Что умеет Nagios?

Имеется сервер с Ораклом, сервер-прослойка поверх Оракла, файлопомойка, и пара числодробильных серверов. Последние берут данные по мере добавления их в файлопомойку, обрабатывают и через промежуточный сервер грузят в Оракл. Требуется мониторить работу серверов: собирать воедино все логи, иметь возможность посмотреть какие процессы были активны, какова была нагрузка на процессор, какие файлы были открыты...

Мне было сказано приспособить для этой цели сервер Nagios. Он так умеет?

Оракл на Red Hat, Nagios на CentOS, остальные машины используют оффтопик.

Заранее спасибо.

P.S. Нужно ставить на все машины Nagios Cross-Platform Agent?

Перемещено leave из general

 ,

olegd
()

Улетают изображения

Есть документ ODT с большим количеством скриншотов, предположительно созданный в OpenOffice 2014 года. Попробовал его открыть в «стабильной» версии LibreOffice 5.2.7.2. Большая часть картинок оказалась в левом верхнем углу первой страницы. Перетаскать их вручную на нужные страницы можно, но долго. Существует ли более быстрый способ? Помимо поставить версию, в которой документ набирали.

P.S. Поправка. Если открыть ODT как ZIP, там 23 файла PNG. В текст вставлено 23 скриншота, с Anchor=«To character», и в самом начале ещё 23 скриншота, тоже с с Anchor=«To character». Чем может быть вызван этот глюк?

P.P.S. Документ оказался создан в LO 5.3.2.2, где открывается нормально. В 5.3.3.2 открылся с тем же глюком.

 , ,

olegd
()

Можно ли запретить выполнение текстовых файлов без «#!» вначале?

Если есть текстовый файл с установленным битом executable и первой строкой, начинающейся с sha-bang, то есть вида:

#!{интерпретатор с путём}
, то он обрабатывается как скрипт указанным интерпретатором.

Если executable установлен, но в первой строке интерпретатора нет, все строки обрабатываются как вызовы программ из командной строки.

Можно ли как-то запретить второе поведение? Помимо установки a-x для всего копируемого с FAT.

olegd
()

Копьютер виснет и мигает светодиодами на клавиатуре от проигрывания видеофайлов

Сегодня решил разобрать видеофайлы, которые я много месяцев скачивал с Ютуба и других сайтов и оставлял в ~ . По очереди запускал их из MC в mplayer-е, проматывал туда-сюда, выходил и в том же MC перемещал в подходящую директорию (на том же физическом диске). Обнаружил, что после примерно получаса-часа таких действий система зависает на очередном видеофайле. Ни на что не реагирует, только мигают светодиоды Caps Lock и Scroll Lock. И так несколько раз.

Плохой контакт шлейфа исключаю — вскрыл корпус, проверил, что всё нормально, на всякий случай выдернул провода и вставил обратно. Не помогло.

Температура процессора по данным BIOS 55⁰C, материнской платы ниже 30, радиатор на видеокарте тоже не горячий, градусов 40 на ощупь.

Проапдейтил видеодрайвер, пока больше не висло.

# lspci
00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] RS780 Host Bridge
00:02.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] RS780 PCI to PCI bridge (ext gfx port 0)
00:04.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] RS780/RS880 PCI to PCI bridge (PCIE port 0)
00:11.0 SATA controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 SATA Controller [IDE mode]
00:12.0 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB OHCI0 Controller
00:12.1 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0 USB OHCI1 Controller
00:12.2 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB EHCI Controller
00:13.0 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB OHCI0 Controller
00:13.1 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0 USB OHCI1 Controller
00:13.2 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB EHCI Controller
00:14.0 SMBus: Advanced Micro Devices, Inc. [AMD/ATI] SBx00 SMBus Controller (rev 3c)
00:14.1 IDE interface: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 IDE Controller
00:14.2 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] SBx00 Azalia (Intel HDA)
00:14.3 ISA bridge: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 LPC host controller
00:14.4 PCI bridge: Advanced Micro Devices, Inc. [AMD/ATI] SBx00 PCI to PCI Bridge
00:14.5 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB OHCI2 Controller
00:18.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 10h Processor HyperTransport Configuration
00:18.1 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 10h Processor Address Map
00:18.2 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 10h Processor DRAM Controller
00:18.3 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 10h Processor Miscellaneous Control
00:18.4 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 10h Processor Link Control
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Cayman PRO [Radeon HD 6950]
01:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Cayman/Antilles HDMI Audio [Radeon HD 6900 Series]
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 06)

# uname -a
Linux nameless 3.12.13-gentoo #3 SMP Wed May 28 00:54:02 MSK 2014 x86_64 AMD Phenom(tm) II X6 1090T Processor AuthenticAMD GNU/Linux

Использую закрытый драйвер AMD, сменил 14.6_beta1 на 14.6_beta2. mplayer 1.2_pre20130729 (последний стабильный в Gentoo).

Что это могло быть? Как выяснить, в чём дело? Какие логи смотреть? Или что сделать, чтобы эта причина попала в логи?

Заранее спасибо.

 , ,

olegd
()

Enterprise CD ejector

Искал сейчас информацию по клонированию машин, наткнулся на замечательное оскорбление. Сотрудник Парагона в блоге на Хабре рекламирует их изделие. Кто-то спрашивает его о возможностях программы. Тот плывет. Спрашивающий приходит к выводу, что программа по возможностям не превосходит dd, и называет ее «очередным энтерпрайзным cd eject».

p.s. Не пил.

olegd
()

Перенос Windows XP в виртуальную машину

Имеется помирающая машина с Windows XP и установленными ценными программами. Требуется перенести ее образ в виртуальную машину (VMWare или VirtualBox — не принципиально) так, чтобы они все продолжили работать как раньше. (Упреждая вопрос — смену MAC-адреса или видеокарты они не заметят.) Как это сделать? Посоветуйте, пожалуйста, руководство, где были бы разобраны все тонкости.

Если ответ включает dd и qemu-img, с какими ключами следует собирать qemu, чтобы там был qemu-img? нашел его

Устанавливать эти же программы на чистую XP нельзя. Из-за нерегулярных и не всегда удачных обновлений сложилась такая комбинация, которая обеспечивает приемлемую работу этого глюкодрома, но которую преднамеренно воспроизвести не получается.

Update: Нашел «VMware vCenter Converter», попробую его.

 , ,

olegd
()

Посоветуйте маломощный компьютер на x86

Требуется маломощный компьютер для проигрывания MP3 и постоянно включённого клиента Скайпа (без X Window). Главные требования — низкая цена и низкое энергопотребление. Очень хорошо, если ему не требуется вентилятор. Процессор — любой x86-совместимый, из-за Скайпа. Память — сотни мегабайт, видимо. Диск — гигабайты, или сколько требуется под ГНУ/Линукс.

Причины, по которым не годятся ARM и другие процессоры, а также Андроид: Постоянно работающий Skype А VPS не сможет играть музыку.

Пытался искать в сети, но слабо представляю, как называется то, что мне нужно. «Неттоп»? «Одноплатный компьютер»? Найденные стоят дороже дешёвого десктопа и жрут десятки ватт. «Роутер»? Не нашёл ни одного на x86.

Заранее спасибо.

P.S. «Низкая цена» значит ниже, чем 1-ядерный десктопный системный блок с интегрированным видео и звуком. Год назад можно было не напрягаясь уложиться в 4000.

olegd
()

ls -1t *.mp3 | mplayer -playlist -

Консольный Mplayer может читать плейлист со стандартного ввода (пример использования вынесен в заголовок), но при этом перестаёт обрабатывать ввод с клавиатуры. Как-то можно это обойти помимо создания временного файла с плейлистом или дополнительной программы для управления mplayer-ом?

 ,

olegd
()

Это правда?

http://ithappens.ru/story/11724

Автор утверждает, что

1. Владельцы прав на «смешариков» регулярно устраивают подставы имеющим физическую возможность копировать зарегистрированные образы. То есть размещают заказы на изготовление, а затем подают в суд.

2. Технически возможно оснастить автомат для печати фотографий программой, которая сможет надёжно находить смешариков на фотографиях перед отправкой на печать.

Если верен пункт 2, то не посоветуете ли программу, способную искать нужный фрагмент по архиву изображений? В идеале хотелось бы что-то способное по такому фрагменту (лицо киногероя) найти такую картинку (он же, в близком ракурсе, но немного другом костюме вклеен в кадр из другого фильма).

P.S. Тег «batch image processing» на английском потому, что «пакетная обработка изображений» не влезла в отведённые 25 символов. cetjs2, если есть более распространённый вариант, ты не мог бы сменить?

P.P.S. Фильмы не смотрел.

 batch image processing,

olegd
()

Для чего предназначена тема «Ошибки и опечатки в новостях»?

Трое суток назад поместил в неё важное исправление к своей новости — автор перевыложил потерявшуюся статью, которая подробно всё описывает. Сам изменить не могу. Ссылки запостил в комментарии, но заметить их там достаточно сложно.

За трое суток никакой реакции. Надо было обращаться куда-то ещё?

Новость: Свободный 3D принтер для печати металла

Просьба об исправлении: Ошибки и опечатки в новостях (2) (комментарий)

olegd
()

Каковы сейчас ограничения на правку своего сообщения в начале темы?

Помнится, какое-то время можно было получить ответ на свой вопрос через полгода и внести исправления в первый пост. Сейчас я не могу исправить вчерашнюю тему. Каковы сроки на правку?

olegd
()

Постоянно работающий Skype

Возникла необходимость круглосуточно держать Скайп включённым, чтобы сохранялись входящие сообщения, а исходящие доходили до адресатов, редко включающих Скайп. Настольный компьютер потребляет слишком много энергии, поэтому возникла мысль приобрести для этого отдельное маломощное устройство. Имеет ли смысл с этим возиться? Если да, что именно искать? Стоимость — скажем, до 1000 рублей.

Телефонный скайп не годится — чересчур падуч и склонен пропускать входящие, если работает другая программа.

Или есть какой-то другой способ обеспечить отправку и приём сообщений Skype, когда адресат и получатель не пересекаются по времени?

Не уверен, в каком разделе место этим вопросам: Network, Desktop или Hardware. Поэтому в General.

Тут ещё подсказывают: хоть с выделенной железкой, хоть с VPS нужно будет синхронизировать логи Скайпа на нескольких машинах. Как Скайп синхронизирует данные между несколькими клиентами? Почему штатная синхронизация может задерживаться на несколько дней и больше?

 

olegd
()

Man on the side attacks

http://www.wired.com/opinion/2013/11/this-is-how-the-internet-backbone-has-be...

Журнал Wired объясняет, как АНБ воровало пароли и распространяло вирусы при помощи подделки TCP-пакетов. Суть метода man-on-the-side — определить, что от пользователя пошёл запрос к серверу, и прислать свой ответ раньше, чем настоящий сервер. Таким образом перехватывали обращения к DNS (подменяя адрес, либо присылая ответ «ничего не найдено»); подсовывали страницы с вирусами; внедряли в страницы картинки якобы с почтового сайта, прехватывали обращения к этому сайту и получали куки, с которыми заходили на сайт.

Вопрос к специалистам: поможет ли против этого шифрование? И если все начнут шифроваться, какие грабли нас ждут?

 

olegd
()

Чем редактировать музыку MOD?

Есть музыкальный файл из старой компьютерной игры. Формат MOD, нормально играется Timidity, MikMod и DeaDBeeF. Хочется отрезать последние несколько секунд и приклеить их в начало. Какой программой это проще сделать?

Зачем это делать? Файл предназначался для зацикленного воспроизведения, последние секунды — вступление.

olegd
()

Сохранить процесс на диск

Существует ли способ сохранить на диск состояние отдельного процесса, чтобы выключить машину, а затем снова включить и продолжить с места остановки? Всё, что нашёл поиском в сети, эквивалентно нажатию Ctrl-Z с последующим принудительным заталкиванием памяти процесса в своп. Перезагрузку предложенные способы пережить не позволяют.

Поясню на примере, что нужно. Запущен какой-то длительный вычислительный процесс. Например, архивирование образа виртуальной машины. Через 12 часов выполнено 80%, но тут приходит электрик и требует срочно потушить все электроприборы в связи с ремонтом подстанции и ожидаемыми скачками напряжения. Suspend в системе не настроен, да и не нужен, требуется усыпить всего 1 процесс. Как сохранить промежуточный результат на время выключения?

Как я понял из объяснений, проблема с номерами связанных процессов и открытых файлов и сокетов. Но нельзя ли их перехватывать и подменять? Для простоты пусть процесс один, нет сетевых соединений, только чтение-запись локальных файлов.

P.S. Пожалуйста, не советуйте включить suspend.

 

olegd
()

RSS подписка на новые темы