Привет мужики (и дамы, если имеются) ... Надеюсь поможете прояснить ситуацию .. цель - одновременный запуск одного и того же внешнего приложения в системе (Linux) с разными параметрами - в фоне .. попытался реализовать это в цикле (данные для этого приложения берутся из БД) но ps aux говорит что ничего не запущено .. (запускается и затухает, а процесс многочасовой) делал так - Код (Text): exec('python blabla --param_1 --param_2 > /dev/null 2>&1 &'); если же введу эту задачу напрямую в консоль с разными параметрами - то все работает нормально и процессы висят и выполняются.. что я упустил из виду ?
нет .. она отрабатывает но только 1 раз почему то .. или же отрабатывает по всем процессам но они почти сразу прекращают своё выполнение - это в зависимости от того стоит > /dev/null 2>&1 или > /dev/null ..
я полный указываю.. говорю же начинает отрабатывать и прекращает .. просто видимо какие то тонкости есть с > /dev/null 2>&1
но она ведь запускает один процесс иногда первый иногда второй (когда их всего два) .. в зависимости от того с какими параметрами запускается команда (я про вывод в null и & как для команды так и для скрипта запуска этих команд) более подробно распишу чуть позже .. --- Добавлено --- Код (Text): exec('python blabla --param_1 --param_2 > /dev/null 2>&1 &'); если пишу так то скрипт запускает обе имеющиеся задачи но они сразу прекращают свою работу .. это я выяснил путем многократных "ps aux" --- Добавлено --- наверное правильнее было бы спросить - как мне вообще сделать это ? запустить множество процессов в фоне одновременно .. без ожидания завершения каждого из них ..
выяснилось что PCNTL для меня не вариант .. с такими долгими процесса остаётся только exec, как я понимаю .. но почему умирают процессы я так и не пойму .. причем если убрать & с конца команды и вывод в null - то процесс запускается как положенно, но синхронно .. что меня не устраивает ..
кажется все прояснилось .. видимо это тупо ограничение на запуск фоновых задач у хостера (beget.com) .. но через ssh задачи все таки запускались исправно .. --- Добавлено --- не пойму логики но все же ..
Попробуй направить вывод не в /dev/null а в текстовые файлы, в директорию, разрешенную для записи. При чем 1 и 2 поток в разные файлы.
попробую .. но они как я понял фоновые задачи блокируют .. возможно придется подыскать новый хостинг даже VPS (как сильно бы мне не нравился beget )) )
не столько из-за этой проблемы сколько из-за некоторых других ограничений с которыми меня ознакомила тех.поддержка --- Добавлено --- не помогло .. --- Добавлено --- Думаю причина ясна .. тему можно закрыть , участников поблагодарить .. Спасибо всем ..
Система не пишет ошибок. Я бы на твоем месте еще попробовал запустить сам php скрипт через консоль, а не с помощью браузера.
а его у меня нет ... тем более скрипт консольный .. так то уже ясно.. я поговорил с тех поддержкой .. они говорят что фоновые задачи блокируются .. смысла копать нет
через ssh ты их от какого пользователя запускаешь? а через php от какого? у пользователя php есть права на те файлы, которые нужны тому приложению? =) --- Добавлено --- впс стоит дёшево, как обычный хостинг, так что вперёд, будь властелином свего сервера
дело в том что процесс в фоне висит пока терминал открыт .. как завершится сеанс так и заблокируются фоновые задачи .. уже взялся - работаю над VPS
настройка впс для маленького проекта - довольно простая задача. Если что - в разделе по настройке сервера можешь создать темку.