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

Общение и разговоры
Закрыто
Аватара пользователя
Yamah
Сообщения: 1387
Зарегистрирован: 04 май 2012, 06:30
Operating system: Десктоп (дом): Rosa Fresh R8.1, Rosa Fresh R10
Десктоп (работа): Rosa Fresh R8.1/Rosa Fresh R10
Сервер (работа): Rosa Enterprise Linux Sercver 6.7
Нетбук: Rosa Fresh R10
Контактная информация:

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

Сообщение Yamah » 30 май 2014, 09:57

Есть саомписанная программа на 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

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

sokoloff
Сообщения: 156
Зарегистрирован: 05 ноя 2013, 20:28
Operating system: ROSA Desktop Fresh R1 64bit

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

Сообщение sokoloff » 30 май 2014, 12:14

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

Аватара пользователя
Yamah
Сообщения: 1387
Зарегистрирован: 04 май 2012, 06:30
Operating system: Десктоп (дом): Rosa Fresh R8.1, Rosa Fresh R10
Десктоп (работа): Rosa Fresh R8.1/Rosa Fresh R10
Сервер (работа): Rosa Enterprise Linux Sercver 6.7
Нетбук: Rosa Fresh R10
Контактная информация:

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

Сообщение Yamah » 30 май 2014, 19:07

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

Закрыто

Вернуться в «Курилка»