Bug 23588 - recollindex не убивается по kill
Summary: recollindex не убивается по kill
Status: REOPENED
Alias: None
Product: Branch 5.1
Classification: Distributions
Component: recoll (show other bugs)
Version: unspecified
Hardware: all Linux
: P3 normal
Assignee: Michael Shigorin
QA Contact: QA 5.1
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-06-04 15:28 MSD by Denis G. Samsonenko
Modified: 2010-08-24 23:06 MSD (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Denis G. Samsonenko 2010-06-04 15:28:44 MSD
При графическом входе у меня вызывается '/usr/bin/ionice -c3 /usr/bin/recollindex -m' из ~/.xsession.d. Проблема заключается в том, что при выходе процесс recollindex не завершается. Соответственно, при повторном входе в систему происходит ещё один вызов recollindex. При этом ни один из процессов recollindex не получается завершить через kill. Помогает только kill -9.

Как заставить завершаться процесс 'recollindex -m' при выходе из графической оболочки?

Вход выполняю через KDM, рабочий стол: KDE4.
Comment 1 Michael Shigorin 2010-08-21 21:09:31 MSD
(In reply to comment #0)
> Как заставить завершаться процесс 'recollindex -m' при выходе из графической
> оболочки?
И зачем тогда промежуточные результаты его деятельности?..

Оберните скриптом, сделайте локинг и всё будет хорошо.  Пара примеров:
http://www.opennet.ru/openforum/vsluhforumID3/69528.html#30

Как вариант -- при выходе можно делать killall -STOP recollindex, а при входе _и_ существовании процесса -- killall -CONT recollindex (в том же скрипте).
Comment 2 Denis G. Samsonenko 2010-08-24 08:07:22 MSD
(В ответ на комментарий №1)
> > Как заставить завершаться процесс 'recollindex -m' при выходе из графической
> > оболочки?
> И зачем тогда промежуточные результаты его деятельности?..

Ну так при перезагрузке компа он же всё равно останавливается. И куда тогда деваются "промежуточные результаты его деятельности"? Или я его просто неправильно использую?
Comment 3 Michael Shigorin 2010-08-24 08:44:17 MSD
Проверьте, но AFAIR понадобится реиндексирование -- как минимум база не будет полной (и искать по ней тогда не вполне осмысленно по крайней мере в моём случае).  Могут и вовсе не отдаваться результаты, уже не помню -- сам такое стараюсь не устраивать.

В принципе, можно обернуть чем-то вида "вот здесь мы пишем в другой xapiandb prefix и если дописали успешно, грохаем старый и переименовываем полученный", но это всё выходит довольно далеко за рамки самого recollindex.  Разве что если реюзабельная обвязка получится, можно автору прислать, он хороший :)
Comment 4 Michael Shigorin 2010-08-24 08:46:51 MSD
PS: (заглянув в man) а, -m... не, этим не пользовался.  А что, он и без -x не отваливается при завершении графической сессии?  Если так, то это баг и о нём стоит сообщить Жану.
Comment 5 Denis G. Samsonenko 2010-08-24 09:44:22 MSD
(В ответ на комментарий №4)
> PS: (заглянув в man) а, -m... не, этим не пользовался.  А что, он и без -x не
> отваливается при завершении графической сессии?  Если так, то это баг и о нём
> стоит сообщить Жану.

Я не пробовал запускать с -x. Запускаю из ~/.xsession.d как recollindex -m, после чего при выходе из X'ов процесс продолжает висеть, и убивается только по kill -9.

У меня версия recoll такая: recoll-1.12.0-alt4

В Сизифе лежит версия поновее, надо будет на ней проверить. Попробую пересобрать в хашере для 5.1.
Comment 6 Michael Shigorin 2010-08-24 10:02:57 MSD
Не-не, -x как раз должен отключать слежение за наличием X-сессии, см. ман.

Если бэкпорт чем поможет -- давайте закинем в бранч, конечно.  Тогда может иметь смысл и xapian-core свежий взять, API в 1.0.x не менялось.
Comment 7 Denis G. Samsonenko 2010-08-24 11:19:50 MSD
Собрал я recoll-1.13.04-alt1 в окружении 5.1. Поведение тоже самое. На выход из X-сессии и на kill -SIGTERM не реагирует. Прибивается только по SIGKILL. В общем бэкпорт не поможет.
Comment 8 Michael Shigorin 2010-08-24 23:04:22 MSD
Предлагаю связываться с разработчиком, я в роли испорченного телефона вряд ли чем особо помогу.  Сам бы обернул скриптом с локингом и всё.
Comment 9 Michael Shigorin 2010-08-24 23:06:03 MSD
Эээ... в смысле верю, что бага есть и судя по ману -- для recollindex -m из-под X-сессии поведение не должно быть таким, но с другой стороны -- если у Вас получается реиндексирование чего-то огромного и оно не прерывабельно без повреждения базы, то поведение программы также резонно.

Попробуйте дать для пробы небольшой каталог в качестве topdirs, не весь ~.