Здравствуйте, я кроном запускаю через exec консольную команду вот как она выглядит: PHP: $result = exec(__DIR__ . '/phantomjs ' . __DIR__ . '/script.js ' . $login . ' ' . $pass); Проблема в том, что хотелось бы что бы этот скрипт выполнялся в фоновом режиме, но на винде у меня каждый раз как крон его дергает появляется консоль, которая мешает, потому что в тот момент я могу заниматься другими делами. Перепробовал уже кучу вариантов, ничего рабочего не нашел. Может что вы подскажете.
@exFAT https://php.ru/manual/function.exec.html This will execute $cmd in the background (no cmd window) without PHP waiting for it to finish, on both Windows and Unix. PHP: <?php function execInBackground($cmd) { if (substr(php_uname(), 0, 7) == "Windows"){ pclose(popen("start /B ". $cmd, "r")); } else { exec($cmd . " > /dev/null &"); } } ?>
PHP: $result = exec(__DIR__ . '/phantomjs ' . __DIR__ . '/script.js ' . $login . ' ' . $pass . ' > /dev/null &'); я не знаю будет ли это в таком виде работать, но суть в том, что нужно перенаправить поток.
че вы паритесь ? я уже ответил а топикстартер помойму забил на нас вот такой у меня ответ system - Выполняет внешнюю программу и отображает её вывод
Все эти варианты я перепробовал еще до того как создал здесь тему. Я с десяток вариантов с стековерфлоу перебрал.
о минуту ... вам необходимо сделать просто чтобы она не появлялась на ВАШЕМ экране правильно ? --- Добавлено --- Запуск приложения в фоновом режиме (процесс будет доступен только в taskmgr) start "Заголовок окна" /b [Исполняемый файл] [Параметры исполняемого файла]
Да, необходимо что бы консоль не появлялась вообще, на линухе она не появляется, но на винде выскакивает сбивая фокус. Если я например пишу сообщение на этом форуме и у меня срабатывает крон, то выскочит консоль, отработает и закроется, и откроется новая консоль(потому что у меня там цикл, нужно где то 100 раз запустить скрипт) Пробовал это тоже) все равно выскакивает. Я уже ее сделал 1х1 пиксель, плюс полупрозрачной, но она все равно мешает сбивая активное окно. Приходится использовать винду так как я любитель пошпилить в игрухи, а на линухе к сожалению нету версий этих приложений.
@exFAT на винде в папке пыха есть несколько программ тебе нужна php-win.exe которая не открывает консолль при выполнении пхп скрипта.
@exFAT эммм сча гляну мб но есть очень тупой вариант,- переименовать копию php-win.exe в php.exe & более тупой,- вынести окно за границы экрана, но вероятно будет изредка теряться фокус в играх && написать собственный крон))) тк в не вижу в опенсервере настроек крона // исходники крона не гуглятся можно использовать вместо крона стандартный "планировщик заданий"
выясните - это окно результат чего .. результат запуска пхп или результат запуска скрипта в новом окне .. что вызывает это окно чтобы знать где и как скрывать.