win32_create_service
(PECL win32service >=0.1.0)
win32_create_service — Створює новий запис служби у базі даних SCM
Опис
win32_create_service(array $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.
Loading...
Приклад #2 Приклад використання win32_create_service()** із залежностями**
Створення сервісу з короткою назвою 'dummyphp' та залежностями.
Loading...
Приклад #3 Приклад використання win32_create_service()с восстановлением
Створення сервісу з короткою назвою 'dummyphp' та налаштуваннями відновлення.
Loading...
Дивіться також
- win32_delete_service() - Видалення запису служби з бази даних SCM
- Базові класи пріоритету Win32
- Дії відновлення Win32
- Коди помилок Win32