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_start
가true
로 설정되어 있으면 다른 자동 시작 서비스가 시작된 후 짧은 지연 시간을 더한 후 이 서비스를 시작해야 함을 SCM에 알립니다.모든 서비스는 지연된 자동 시작 서비스로 표시될 수 있습니다. 그러나 이 설정은 서비스의
start_type
이WIN32_SERVICE_AUTO_START
가 아니면 적용되지 않습니다.이 설정은 Windows Vista 및 Windows Server 2008 이상에만 적용됩니다.
base_priority
- 프로세서 활용도에 대한 영향을 줄이려면 기본 우선 순위를 정상보다 낮게 설정해야 할 수 있습니다.
base_priority
는 Win32 Base Priority Classes에 정의된 상수 중 하나로 설정할 수 있습니다. dependencies
- 서비스에 대한 종속성을 정의하려면 이 매개변수를 배열의 서비스 이름 목록으로 설정해야 할 수 있습니다.
recovery_delay
- 이 매개변수는 실패와 복구 조치 실행 사이의 지연을 정의합니다. 값은 밀리초 단위입니다.
기본값은 60000입니다.
recovery_action_1
- 작업은 첫 번째 실패 시 실행됩니다. 기본값은
WIN32_SC_ACTION_NONE
입니다.recovery_action_1
은 Win32 Recovery action에 정의된 상수 중 하나로 설정할 수 있습니다. recovery_action_2
- 두 번째 실패 시 작업이 실행됩니다. 기본값은
WIN32_SC_ACTION_NONE
입니다.recovery_action_2
는 Win32 Recovery action에 정의된 상수 중 하나로 설정할 수 있습니다. recovery_action_3
- 다음 실패 시 작업이 실행됩니다. 기본값은
WIN32_SC_ACTION_NONE
입니다.recovery_action_3
은 Win32 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_msg 및 recovery_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);
?>
기타
- win32_delete_service() - SCM 데이터베이스에서 서비스 항목을 삭제합니다.
- Win32 Base Priority Classes
- Win32 Recovery action
- Win32 Error Codes