(PECL win32service >=0.1.0)
win32_create_service — Создаёт новую запись службы в базе данных SCM
$details
, string $machine
= ?): voidПробует добавить службу в базу данных SCM. Для этого требуются права администратора.
details
Массив деталей службы:
service
Краткое название службы. Это имя, которое вы будете использовать
для управления службой с помощью команды net
.
Служба должна быть уникальной (никакие две службы не могут иметь одно и то же название)
и, в идеале, не должна содержать пробелов в названии.
display
Отображаемое имя службы. Это имя, которое вы увидите в апплете служб.
description
Подробное описание услуги. Это описание, которое вы увидите в апплете служб.
user
Имя учётной записи пользователя, под которой вы хотите запускать службу. Если этот параметр не указан, служба будет работать под учётной записью LocalSystem. Если имя пользователя указано, вы также должны указать пароль.
password
Пароль, соответствующий user
.
path
Полный путь к исполняемому модулю, который будет запущен при запуске службы. Если не указано, будет использоваться путь к текущему процессу PHP.
params
Параметры командной строки для передачи службе при её запуске.
Если вы хотите запустить скрипт PHP как службу, то первым
параметром должен быть полный путь к скрипту PHP, который вы собираетесь
запустить. Если имя скрипта или путь содержат пробелы, заключите полный
путь к скрипту в кавычки "
.
load_order
Управляет load_order. Ещё не полностью поддерживается.
svc_type
Устанавливает тип службы. Если опущено, будет использовано значение по умолчанию
WIN32_SERVICE_WIN32_OWN_PROCESS
.
Не меняйте это, если вы не знаете, что делаете.
start_type
Устанавливает способ запуска службы. По умолчанию используется
WIN32_SERVICE_AUTO_START
, что означает,
что служба будет запущена при запуске машины.
error_control
Сообщает SCM, что он должен делать при обнаружении проблемы со службой.
По умолчанию это WIN32_SERVER_ERROR_IGNORE
.
Изменение этого значения пока поддерживается не полностью.
delayed_start
Если для delayed_start
установлено значение true
,
то это проинформирует SCM о том, что служба должна быть запущена после того,
как будут запущены другие службы автозапуска, плюс небольшая задержка.
Любую службу можно пометить как службу с отложенным автозапуском; однако
этот параметр не действует, если start_type
службы
не равен WIN32_SERVICE_AUTO_START
.
Параметр применим только в Windows Vista и Windows Server 2008 или более поздних версиях.
base_priority
Чтобы уменьшить влияние на использование процессора, может потребоваться установить базовый приоритет ниже обычного.
base_priority
может быть одной из констант
определённых в базовых классах приоритета Win32.
dependencies
Чтобы определить зависимости для вашей службы, может потребоваться установить этот параметр для списка имён служб в массиве.
recovery_delay
Этот параметр определяет задержку между ошибкой и выполнением действия восстановления. Значение в миллисекундах.
Значение по умолчанию - 60000.
recovery_action_1
Действие будет выполнено при первой ошибке. Значение по умолчанию -
WIN32_SC_ACTION_NONE
.
Для recovery_action_1
можно задать одну из констант
действий восстановления Win32.
recovery_action_2
Действие будет выполнено при второй ошибке. Значение по умолчанию -
WIN32_SC_ACTION_NONE
.
Для recovery_action_2
можно задать одну из констант
действий восстановления Win32.
recovery_action_3
Действие будет выполнено при последующих ошибках. Значение по умолчанию -
WIN32_SC_ACTION_NONE
.
Для recovery_action_3
можно задать одну из констант
действий восстановления Win32.
recovery_reset_period
Счётчик отказов будет сброшен после задержки, определённой в параметре. Задержка указывается в секундах.
Значение по умолчанию 86400
.
recovery_enabled
Установите для этого параметра значение true
для включения настроек восстановления,
false
для отключения.
Значение по умолчанию false
recovery_reboot_msg
Установите этот параметр, чтобы определить сообщение, сохраняемое в журнале событий Windows
перед перезагрузкой. Используется, только если для одного из действий установлено значение
WIN32_SC_ACTION_REBOOT
.
recovery_command
Установите этот параметр, чтобы определить команду, выполняемую, если одно из действий определено, как
WIN32_SC_ACTION_RUN_COMMAND
.
machine
Необязательное имя машины, на которой вы хотите создать службу. Если не указано, будет использоваться локальный компьютер.
Функция не возвращает значения после выполнения.
До версии 1.0.0, Возвращает WIN32_NO_ERROR
в случае успешного завершения , false
если была обнаружена проблема с параметрами или код ошибки Win32 при неудачном завершении работы.
Выбрасывается ValueError, если
значение параметра service
не задано.
Выбрасывается ValueError, если
значение параметра path
не задано.
Выбрасывается ValueError, если
значение параметра svc_type
указано неверно.
Выбрасывается ValueError, если
значение параметра start_type
указано неверно.
Выбрасывается ValueError, если
значение параметра error_control
указано неверно.
Выбрасывается ValueError, если
значение параметра base_priority
указано неверно.
Выбрасывается ValueError, если
значение параметра recovery_delay
не в промежутке между
0 и PHP_INT_MAX.
Выбрасывается ValueError, если
значение параметра recovery_action_1
указано неверно.
Выбрасывается ValueError, если
значение параметра recovery_action_2
указано неверно.
Выбрасывается ValueError, если
значение параметра recovery_action_3
указано неверно.
Выбрасывается ValueError, если
значение параметра recovery_reset_period
не в промежутке между
0 и PHP_INT_MAX.
В случае возникновения ошибки выбрасывается Win32ServiceException.
Версия | Описание |
---|---|
PECL win32service 1.0.0 |
Выбрасывает ValueError в случае неверных данных в параметрах,
ранее возвращалось false .
|
PECL win32service 1.0.0 | Выбрасывает Win32ServiceException в случае возникновения ошибки, ранее возвращался Код ошибки Win32. |
PECL win32service 1.0.0 | Тип возврата теперь void, ранее был mixed. |
PECL win32service 0.4.0 |
Добавлены параметры dependencies , recovery_delay ,
recovery_action_1 , recovery_action_2 ,
recovery_action_3 , recovery_reset_period ,
recovery_enabled , recovery_reboot_msg
и recovery_command .
|
Пример #1 Пример использования win32_create_service()
Создание сервиса с кратким названием 'dummyphp'.
<?php
$x = win32_create_service(array(
'service' => 'dummyphp', // название сервиса
'display' => 'sample dummy PHP service', // краткое описание
'description' => 'This is a dummy Windows service created using PHP.', // полное описание
'params' => '"' . __FILE__ . '" run', // путь до скрипта и параметров
));
debug_zval_dump($x);
?>
Пример #2 Пример использования win32_create_service() с зависимостями
Создание сервиса с кратким названием 'dummyphp' и зависимостями.
<?php
$x = win32_create_service(array(
'service' => 'dummyphp', // название сервиса
'display' => 'sample dummy PHP service', // краткое описание
'description' => 'This is a dummy Windows service created using PHP.', // полное описание
'params' => '"' . __FILE__ . '" run', // путь до скрипта и параметров
'dependencies' => array("Netman"), // список зависимостей
));
debug_zval_dump($x);
?>
Пример #3 Пример использования win32_create_service() с восстановлением
Создание сервиса с кратким названием 'dummyphp' и настройками восстановления.
<?php
$x = win32_create_service(array(
'service' => 'dummyphp', // название сервиса
'display' => 'sample dummy PHP service', // краткое описание
'description' => 'This is a dummy Windows service created using PHP.', // полное описание
'params' => '"' . __FILE__ . '" run', // путь до скрипта и параметров
'recovery_delay' => 120000, // Действие восстановления выполняется через 2 минуты.
'recovery_action_1' => WIN32_SC_ACTION_RESTART, // При первом сбое перезапускается служба.
'recovery_action_2' => WIN32_SC_ACTION_RUN_COMMAND, // При втором сбое выполняется команда
'recovery_action_3' => WIN32_SC_ACTION_NONE, // При последующих сбоях ничего не делать
'recovery_reset_period' => 86400, // Сбросить счётчик ошибок через 1 день
'recovery_enabled' => true, // Включить параметр восстановления
'recovery_reboot_msg' => null, // Не определяйте сообщение о перезагрузке, здесь оно не нужно
'recovery_command' => "c:\clean-service.bat", // Когда действие - WIN32_SC_ACTION_RUN_COMMAND, выполняется эта команда
));
debug_zval_dump($x);
?>