win32service 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 스크립트의 전체 경로여야 합니다. 스크립트 이름이나 경로에 공백이 포함된 경우 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_starttrue로 설정되어 있으면 다른 자동 시작 서비스가 시작된 후 짧은 지연 시간을 더한 후 이 서비스를 시작해야 함을 SCM에 알립니다.

모든 서비스는 지연된 자동 시작 서비스로 표시될 수 있습니다. 그러나 이 설정은 서비스의 start_typeWIN32_SERVICE_AUTO_START가 아니면 적용되지 않습니다.

이 설정은 Windows Vista 및 Windows Server 2008 이상에만 적용됩니다.

base_priority
프로세서 활용도에 대한 영향을 줄이려면 기본 우선 순위를 정상보다 낮게 설정해야 할 수 있습니다.

base_priorityWin32 Base Priority Classes에 정의된 상수 중 하나로 설정할 수 있습니다.

dependencies
서비스에 대한 종속성을 정의하려면 이 매개변수를 배열의 서비스 이름 목록으로 설정해야 할 수 있습니다.
recovery_delay
이 매개변수는 실패와 복구 조치 실행 사이의 지연을 정의합니다. 값은 밀리초 단위입니다.

기본값은 60000입니다.

recovery_action_1
작업은 첫 번째 실패 시 실행됩니다. 기본값은 WIN32_SC_ACTION_NONE입니다.

recovery_action_1Win32 Recovery action에 정의된 상수 중 하나로 설정할 수 있습니다.

recovery_action_2
두 번째 실패 시 작업이 실행됩니다. 기본값은 WIN32_SC_ACTION_NONE입니다.

recovery_action_2Win32 Recovery action에 정의된 상수 중 하나로 설정할 수 있습니다.

recovery_action_3
다음 실패 시 작업이 실행됩니다. 기본값은 WIN32_SC_ACTION_NONE입니다.

recovery_action_3Win32 Recovery action에 정의된 상수 중 하나로 설정할 수 있습니다.

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 Error Code를 반환했습니다.


오류/예외

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 사이가 아니면 ValueError가 발생합니다.

오류가 발생하면 Win32ServiceException이 발생합니다.


변경 로그

버전 설명
PECL win32service 1.0.0 매개변수의 잘못된 데이터에 대해 ValueError를 발생시킵니다. 이전에는 false가 반환되었습니다.
PECL win32service 1.0.0 이전에 Win32 Error Code가 반환된 오류 시 Win32ServiceException을 throw합니다.
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_msgrecovery_command 매개변수가 추가되었습니다.

Examples

예제 #1 win32_create_service() 예제

'dummyphp'라는 짧은 이름으로 서비스를 만듭니다.

                  
<?php
$x = win32_create_service(array(
    'service'     => 'dummyphp',                                           // the name of your service
    'display'     => 'sample dummy PHP service',                           // short description
    'description' => 'This is a dummy Windows service created using PHP.', // long description
    'params'      => '"' . __FILE__ . '"  run',                            // path to the script and parameters
));
debug_zval_dump($x);
?>
                  
                

예제 #2 종속성이 있는 win32_create_service() 예제

'dummyphp'라는 짧은 이름과 종속성을 사용하여 서비스를 만듭니다.

                  
<?php
$x = win32_create_service(array(
    'service'      => 'dummyphp',                                           // the name of your service
    'display'      => 'sample dummy PHP service',                           // short description
    'description'  => 'This is a dummy Windows service created using PHP.', // long description
    'params'       => '"' . __FILE__ . '"  run',                            // path to the script and parameters
    'dependencies' => array("Netman"),                                      // The list of the dependencies
));
debug_zval_dump($x);
?>
                  
                

예제 #3 복구가 포함된 win32_create_service() 예제

짧은 이름 'dummyphp'와 복구 설정으로 서비스를 만듭니다.

                  
<?php
$x = win32_create_service(array(
    'service'               => 'dummyphp',                                           // the name of your service
    'display'               => 'sample dummy PHP service',                           // short description
    'description'           => 'This is a dummy Windows service created using PHP.', // long description
    'params'                => '"' . __FILE__ . '"  run',                            // path to the script and parameters
    'recovery_delay'        => 120000,                                               // Recovery action is executed after 2 minutes
    'recovery_action_1'     => WIN32_SC_ACTION_RESTART,                              // On first failure, restart the service
    'recovery_action_2'     => WIN32_SC_ACTION_RUN_COMMAND,                          // On second failure, execute the commmand
    'recovery_action_3'     => WIN32_SC_ACTION_NONE,                                 // On other failure, do nothing
    'recovery_reset_period' => 86400,                                                // Reset the fail counter after 1 day
    'recovery_enabled'      => true,                                                 // Enable the recovery parameter
    'recovery_reboot_msg'   => null,                                                 // Do not define a reboot message, it's not needed here
    'recovery_command'      => "c:\clean-service.bat",                               // When the action is WIN32_SC_ACTION_RUN_COMMAND, execute this command
));
debug_zval_dump($x);
?>
                  
                

기타