Может быть, Resource Kit Tools (в частности, srvany.exe) может помочь вам здесь. MSDN: Как создать пользовательскую службу и, возможно, этот совет для 2008 Server должен помочь вам настроить любой исполняемый файл в качестве службы. (Я успешно использовал это на Windows 2003 Server, Windows 2008 Server и на Windows XP Professional [хотя и другой Resource Kit])
Вы бы создали летучую мышь, содержащую php your-script.php
, оберните ее с помощью srvany.exe и вуаля, сценарий запускается, когда машина загружает службы.
srvany.exe должен обрабатывать те вызовы запуска / остановки / перезапуска, которые вы ожидаете от демона. Он загрузит ваш исполняемый файл при запуске, убьет процесс при остановке, сделает оба при перезапуске. Так что вам не нужно беспокоиться об этой части. Возможно, вы захотите проверить, может ли register_shutdown_function () помочь определить, когда ваш сервисный процесс завершен.
Вы даже можете определять зависимости от других сервисов (например, некоторую базу данных или некоторые другие).
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\THENAMEOFYOURSERVICE]
"DependOnService"="DEPENDONTHIS"
замените THENAMEOFYOURSERVICE
на имя, которое вы дали своей службе, и DEPENDONTHIS
на имя службы, от которой вы зависите (скажем, «Postgres9.0» или что-то в этом роде). Сохраните этот файл в dependency.reg
и загрузите его с regedit /s dependency.reg
. (Или дважды щелкните его в проводнике…)