Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как из PHP запустить другой PHP скрипт на исполнение
 
 автор: MrNick   (25.01.2007 в 00:42)   письмо автору
 
 

Задача такая: (заранее извиняюсь если что-то подобное уже обсуждалось)
PHP скрипт должен постоянно крутиться на сервере выполняет роль демона. Время от времени запуская различные другие скрипты на исполнение.
Пробовал включать нужный к исполнению скрипт через include(); но приходиться ждать исполнения этого скрипта (который включается в основной скрипт), а это меня ну не как не устраивает. Пробовал открывать его как обычный файл через fopen затем считывать немного из этого файла (дабы он на исполнение запустился ) и закрывал его, это тоже не совсем меня устраивает. Может есть какая-то для этого специальная функция? Как мне это реализовать более грамотно?
Заранее спасибо!

   
 
 автор: cheops   (25.01.2007 в 00:57)   письмо автору
 
   для: MrNick   (25.01.2007 в 00:42)
 

Хм... а через cron нельзя скрипт запускать?

   
 
 автор: MrNick   (25.01.2007 в 02:02)   письмо автору
 
   для: cheops   (25.01.2007 в 00:57)
 

нет! нет такой возможности иначе конечно бы так и сделал ...

   
 
 автор: Shorr Kan   (25.01.2007 в 04:08)   письмо автору
 
   для: MrNick   (25.01.2007 в 02:02)
 

Если exec разрешена, то:


<?
exec
("/path/to/php -f /path/to/script.php > /dev/null &");
?>

   
 
 автор: ssdmt_   (25.01.2007 в 07:40)   письмо автору
 
   для: MrNick   (25.01.2007 в 00:42)
 

а процессы порождать текущий процесс php не может? как в С++ или Java ?

   
 
 автор: cheops   (25.01.2007 в 14:57)   письмо автору
 
   для: MrNick   (25.01.2007 в 00:42)
 

А сервер ваш или хост провайдера? Если хост-провайдера, то скорее всего ничего не получится.

   
 
 автор: MrNick   (27.01.2007 в 05:19)   письмо автору
 
   для: cheops   (25.01.2007 в 14:57)
 

Что то так и не получается у меня с этой функцией не чего.
У меня не собственный сервер а именно хост провайдера.
Может есть еще какие-то варианты?

   
 
 автор: hsasha   (27.01.2007 в 05:25)   письмо автору
 
   для: MrNick   (27.01.2007 в 05:19)
 

system("/path/to/php /path/to/script.php &"); ?

   
 
 автор: MrNick   (31.01.2007 в 19:06)   письмо автору
 
   для: hsasha   (27.01.2007 в 05:25)
 

Запустил я скрипт с помощью функции exec() и то на локальном компьютере, на хосте еще не пробовал, но уже понимаю что не чего у меня там с ней не выйдет, так как скорей всего эта функция там будет запрещена, но суть не в этом ... после того как через exec() запускаю другой php скрип, тот скрипт что его запустил ждет конца его исполнения, а значит не чем не лучше чем include(), эффект один и тот же для моей задачи, а если быть точнее абсолютно мне не подходит. Нужно что скрипт запустился автономно и не зависли они друг от друга. Есть варианты?

   
 
 автор: Shorr Kan   (31.01.2007 в 19:35)   письмо автору
 
   для: MrNick   (31.01.2007 в 19:06)
 

Я уже подсказывал выше:

exec("/path/to/php -f /path/to/script.php > /dev/null &");

Такой метод запустит скрипт в фоне - запускающий скрипт не будет ждать выполнения.
Имейте ввиду, это очень важно:

> /dev/null &

   
 
 автор: MrNick   (04.02.2007 в 19:21)   письмо автору
 
   для: Shorr Kan   (31.01.2007 в 19:35)
 

Спасибо конечно Shorr Kan, но я пробывал так:

exec("c:/php5/php -f c:/site/localhost/demo.php > /dev/null &");

и так, скрипт (в моем варианте demo.php) не исполняеться, не знаю почему ...

а вот так исполняеться:

exec("c:/php5/php -f c:/site/localhost/demo.php");

но приходиться ждать его окончания.

Что не так? и как это исправить?
И еще ... получаеться это единственный способ решения моей задачи?
Не ужто больше нет не каких других вариантов?

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования