Здравствуйте!
есть shell скрипт
#!/bin/bash
while sleep 1
do
perl -f /path/to/script.pl
echo "perl done"
php -f /path/to/script.php
echo "php done"
done
Запускаю ./up.sh ---- здесь php отрабатывает как часики.
а ./up.sh & в фоне перл отрабатывает, а php нет. Почему, не могу понять.
Права на исполнение есть.
Когда запускаю в фоне, такое ощущение как будто php зависает или чего то ожидает.
Причем в процессах присутствует, но реально после вывода в консоль perl done, просто висит
вот вывод ps aux:
root 30452 0.0 0.0 1896 512 pts/1 T 13:12 0:00 /bin/sh /path/to/./script.sh
Почему в фоне скрипт приостанавливается?
Подскажите в чем может быть проблема! Как заставить работать скрипт?
Заранее спасибо.
Пользователь решил продолжить мысль 20 Февраля 2011, 01:06:43:
Решено.
Наблюдая за процессами понял, что php приостанавливал исполнение, т.к. по видимому ждал ответа от скрипта, что он выполнен.
Дальше просто добавил в скрипт
#!/bin/bash
while sleep 1
do
perl -f /path/to/script.pl
echo "perl done"
php -f /path/to/script.php & // Не дожидаясь выполнения отправлять в фон.
echo "php done"
done
Затем ./script.sh &
И все стало работать.