Страница 1 из 1

Странности при запуске программы в cron

Добавлено: 30 май 2014, 09:57
Yamah
Есть саомписанная программа на QT4, которая слушает сообщения от inotifywait и реагирует на них. Ночью программа перестает слушать inotifywait. В причинах пока разбираемся
Было принято решение рестартовать эту программу по времени каждый день. Но происходить что-то странное. Скрипт

Код: Выделить всё

#!/bin/bash
killall -9 ScanADD
sleep 3s
screen -d -m /usr/local/bin/ScanADD
при ручном запуске отрабатывает нормально. А вот из крона порождает зомбипроцесс с программой.

Вывод pas aux для ручного запуска

Код: Выделить всё

<до того как прихлопываем процесс>
ps aux | grep ScanADD
root      4963  0.0  0.0 119352  1020 ?        Ss   12:34   0:00 SCREEN -d -m /usr/local/bin/ScanADD
root      4965  0.0  0.0 244660  4520 pts/0    Ssl+ 12:34   0:00 /usr/local/bin/ScanADD
root      5027  0.0  0.0 103276   864 pts/3    S+   12:48   0:00 grep ScanADD
<прибили процесс>
ps aux | grep ScanADD
root      5031  0.0  0.0 103276   860 pts/3    S+   12:48   0:00 grep ScanADD
<стартовали процесс>
ps aux | grep ScanADD
root      5037  0.0  0.0 119352  1020 ?        Ss   12:48   0:00 SCREEN -d -m /usr/local/bin/ScanADD
root      5039  0.0  0.0 244660  4520 pts/0    Ssl+ 12:48   0:00 /usr/local/bin/ScanADD
root      5054  0.0  0.0 103276   864 pts/3    S+   12:48   0:00 grep ScanADD
Вывод pas aux для запуска из cron

Код: Выделить всё

<до того как прихлопываем процесс>
ps aux | grep ScanADD
root      4013  0.0  0.0 119352  1024 ?        Ss   08:55   0:00 SCREEN -d -m /usr/local/bin/ScanADD
root      4014  0.0  0.0 244660  4572 pts/0    Ssl+ 08:55   0:00 /usr/local/bin/ScanADD
root      4780  0.0  0.0 103276   864 ?        S    12:20   0:00 grep ScanADD
<прибили процесс>
ps aux | grep ScanADD
root      4784  0.0  0.0 103276   864 ?        S    12:20   0:00 grep ScanADD
<стартовали процесс>
ps aux | grep ScanADD
root      4790  0.0  0.0 119352  1012 ?        Ss   12:20   0:00 SCREEN -d -m /usr/local/bin/ScanADD
root      4792  0.0  0.0 244656  4516 pts/0    Ssl+ 12:20   0:00 /usr/local/bin/ScanADD
root      4804  0.0  0.0      0     0 pts/0    Z+   12:20   0:00 [ScanADD] <defunct>
root      4806  0.0  0.0 103276   868 ?        S    12:20   0:00 grep ScanADD
ОС RELS 6.5 x86_64

В чем разница для скрипта между запуском из крона и вручную?
Что же порождает зомби?

Re: Странности при запуске программы в cron

Добавлено: 30 май 2014, 12:14
sokoloff
Отличие в переменных окружения. Обратите внимание на переменные начнающиеся с QT_, KDE_ и XDG_. Если программа использует DBUS, то нужна переменная DBUS_SESSION_BUS_ADDRESS.
Если программа использует/скомпилированна с иксами, можно воспользоваться xvfb.
Вообще первое что надо проверить, это попробовать запустить из консоли, не из konsole или xterm, а из настоящей которая Alt+Ctrl+Fn.

Re: Странности при запуске программы в cron

Добавлено: 30 май 2014, 19:07
Yamah
sokoloff писал(а):Отличие в переменных окружения. Обратите внимание на переменные начнающиеся с QT_, KDE_ и XDG_. Если программа использует DBUS, то нужна переменная DBUS_SESSION_BUS_ADDRESS.
Странно, чтобы переменные окружения вызывали второй процесс, который сразу же и зомбировали...
sokoloff писал(а):Если программа использует/скомпилированна с иксами, можно воспользоваться xvfb.
Вообще первое что надо проверить, это попробовать запустить из консоли, не из konsole или xterm, а из настоящей которая Alt+Ctrl+Fn.
Там иксов никогда не было. Максимум, что там есть, помимо чистой консоли, это - ssh-сервер. Впрочем, это и есть сервер.