Archive for Сентябрь, 2009

Выполнение фоновых процессов из PHP в Windows

В *nix, запуска фоновых процессов, выполняется простым добавлением амперсанда (&) к команде. В Windows, это не так просто сделать из PHP.

Если вы используете в PHP функции системных вызовов, как exec, system, passthru или shell_exec, то эти методы приводят к подвисанию программы, которая ждет завершения работы вызванного процесса.

Описанные ниже методы предполагают, что вы используете PHP-CLI (работу с php из командной строки). Запуск PHP на веб-сервере требует правильной настройки конфигурации и прав доступа, такие как safe_mode, safe_mode_exec_dir и т.д.

Для примера, мы хотим вызвать cmd из PHP, но чтобы программа продолжала выполнять действия.
Приведенные ниже примеры не работают.

exec("cmd");
exec("cmd >NUL");
exec("cmd /c cmd");
exec("start /b cmd");
exec("runas cmd");

В каждом случае, PHP ждет пока cmd закроется.

Существуют несколько обходных путей, упомянутых в комментариях к документации по PHP к функции exec()

Краткое изложение этих методов, в порядке предпочтения:

Начало процесса с использованием popen и pclose
Этот код должен работать на Linux и Windows.

$exe = "cmd.exe";
pclose(popen('start "bla" "' . $exe . '" ' . escapeshellarg($args), 'r'));

Начало фонового процесса с использованием объекта WScript.Shell
Этот код работает только в Windows.

$WshShell = new COM("WScript.Shell");
 
// Запуск cmd в свернутом состоянии
$oExec = $WshShell->Run("cmd ", 7, false);
 
// Запуск cmd в фоновом режиме, иконка на панели задач не выводится
$oExec = $WshShell->Run("cmd /C dir /S %windir%", 0, false);

Более подробнее о методе Run() читайте в msdn.

Начало фонового процесса с использованием утилиты PsExec
Этот метод требует установки бесплатной утилиты PsTools от Sysinternals

exec("psexec -d cmd.exe");

Комментарии (2)

Кукрыниксы – Клетка

Audio clip: Adobe Flash Player (version 9 or above) is required to play this audio clip. Download the latest version here. You also need to have JavaScript enabled in your browser.

, ,

Нет комментариев

Лампасы – Апрелевка

Audio clip: Adobe Flash Player (version 9 or above) is required to play this audio clip. Download the latest version here. You also need to have JavaScript enabled in your browser.

, ,

Нет комментариев

Мой блог вернулся в индекс яндекса

В продолжении темы о выпадении из индекса.
Сегодня очередной апдейт и все страницы вернулись в индекс.

Оперативно работают ребята в яндекса.

,

Комментарии (2)

17 мгновений весны (в цвете)

Пробежался по френдленте в жж и наткнулся на забавный роли.

,

Нет комментариев

Мой блог выпал из индекса яндекса

Заметил резкое снижение посещаемости и сразу начал анализировать на предмет индексированости сайта в яндексе. Сайта в выдаче не было, и сел писать письмо в support@yandex.ru.

в гугле всё ок, все страницы проиндексированы.
Вот такие сюрпризы готовит нам зрзамас.

Жду апдейта.

Ниже переписка с яндексом.

php.cms.dev 14 сентября 2009 г. 11:58
Сайта phpcmsdev.imcms.ru нет в поисковой выдаче

Yandex.Addurl addurl@yandex-team.ru 14 сентября 2009 14:58
Благодарим Вас за то, что обратили наше внимание на проблемы с индексированием
Вашего сайта. Мы постараемся в скором времени определить, по какой причине он
отсутствует в поиске.

--
С уважением, Платон Щукин
Служба поддержки Яндекса

http://help.yandex.ru/

Yandex.Addurl addurl@yandex-team.ru 15 сентября 2009 16:52
Ваш сайт отсутствовал в поиске из-за ошибки на нашей стороне, в ближайшие дни
он должен вернуться в выдачу. Приносим извинения за доставленные неудобства.

--
С уважением, Платон Щукин
Служба поддержки Яндекса

http://help.yandex.ru/

,

Комментарии (4)

FeedBurner снова дружит FriendFeed

Ура, FeedBurner снова учитывает подписчиков из FriendFeed.

Статистика с FeedBurner

Буду работать над качеством и количеством ))

, ,

Нет комментариев

Чудо яблочки

В китайском городке Сиань, с 2003 года проходят эксперименты по выращиванию формовых плодов женьшени грушевидной формы.

В этом году успешно выращено тысячный фомовой плод.
Чудо плод на дереве

Чудо плод

Нет комментариев

Вызов из SIPNET в Skype и обратно

SIPNET начинает бета тест услуги «Вызов из SIPNET в Skype и обратно».
Все соединения между абонентами SIPNET и Skype бесплатны.

Бесплатный звонок из SIPNET абоненту Skype

Для вызова контакта Skype из сети SIPNET введите адрес в формате user@skype.sipnet.ru (или user@skype.com).

В сети Skype шлюз для доступа в SIPNET имеет идентификатор skype.sipnet.ru
Посоветуйте пользователю Skype заранее внести это имя в список контактов (в том числе и для обратной связи).

Передача текстовых сообщений, файлов и видео не поддерживается. Skype OUT не поддерживается.

Бесплатный звонок из Skype абоненту SIPNET

Для вызова контактов SIPNET из сети Skype внесите имя skype.sipnet.ru в список контактов Skype.
Чтобы позвонить абоненту SIPNET выберите из списка контактов Skype имя skype.sipnet.ru и нажмите клавишу «Позвонить» (Call). После голосового приветствия нажмите на клавишу «Добавь номер телефона» и введите* цифровой SIP ID вызываемого абонента.

* – Версия Skype 3.x позволяет набирать цифры с клавиатуры сразу после установки соединения.
В версии Skype 4.x после установки соединения следует дополнительно вызвать номеронабиратель. Для этого нажмите справа от регулятора громкости на клавишу (треугольник) и в выпадающем меню нажмите раздел «Набор» и введите цифровой SIP ID вызываемого абонента. Иллюстрация набора в версии Skype 4.x представлена ниже.

Звонок из Skype абоненту SIPNET

, ,

Комментарии (2)