Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Скрипт по крону

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: или чё то там как то так...
nordghost
Отправлено: 05 Февраля, 2012 - 18:45:58
Post Id



Посетитель


Покинул форум
Сообщений всего: 319
Дата рег-ции: Окт. 2011  


Помог: 3 раз(а)




Здравствуйте! Вообщем такаое дело, у меня есть крипт который принимает сосединение на сокет, как сделать так чтобы он запускался каждые 30 секунд?


-----
<a href="http://netbeans[dot]org/">Моя любимая IDE</a> :3
 
My status
 Top
EuGen Администратор
Отправлено: 05 Февраля, 2012 - 19:00:47
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Написать, например, такой скрипт (назову его launcher.php):
PHP:
скопировать код в буфер обмена
  1. $sLaunch = escapeshellarg($_SERVER['argv'][1]);
  2. $iWait   = escapeshellarg($_SERVER['argv'][2]);
  3. while(true)
  4. {
  5.    system('php '.$sLaunch.' > /dev/null &');
  6.    sleep($iWait);
  7. }

И если нужный скрипт для запуска, скажем, script.php, а ждать нужно 30 секунд, то запускать так:
CODE (bash):
скопировать код в буфер обмена
  1. php launcher.php script.php 30 &

При этом учтите - никакой проверки на то, что script.php уже исполняется - нет, так что если на момент очередного запуска он все еще будет исполняться - будет две работающих копии.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
nordghost
Отправлено: 05 Февраля, 2012 - 19:43:48
Post Id



Посетитель


Покинул форум
Сообщений всего: 319
Дата рег-ции: Окт. 2011  


Помог: 3 раз(а)




А как избежать 2-х работающих копий и как сделать так чтобы скрипт щапускался при старте системы?


-----
<a href="http://netbeans[dot]org/">Моя любимая IDE</a> :3
 
My status
 Top
EuGen Администратор
Отправлено: 05 Февраля, 2012 - 20:31:46
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Чтобы запускался при старте системы - поместить его в rc.local - его местонахождение зависит от дистрибутива, однако найти можете так:
CODE (bash):
скопировать код в буфер обмена
  1. find /etc -name "rc.local"

Для того, чтобы не допустить сдвоенных копий, можно модифицировать скрипт при помощи поиска в процесс-листе - команда ps. Можете сделать по аналогии:
PHP:
скопировать код в буфер обмена
  1. exec('ps aux | grep '.$sLaunch, $rgResult);

- предлагаю Вам посмотреть, что запишется в $rgResult и составить условие - запускать копию скрипта или нет.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
nordghost
Отправлено: 06 Февраля, 2012 - 02:10:07
Post Id



Посетитель


Покинул форум
Сообщений всего: 319
Дата рег-ции: Окт. 2011  


Помог: 3 раз(а)




Огромное спасибо очень выручили буду сейчас разрабатывать Радость


-----
<a href="http://netbeans[dot]org/">Моя любимая IDE</a> :3
 
My status
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с сетью »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB