win32service
win32service
PHP 스크립트를 Windows 서비스로 띄우고 싶다면 이 확장이 딱이에요. win32service 확장은 Windows 전용 확장으로, PHP가 서비스 제어 관리자(Service Control Manager, 이하 SCM)와 통신해서 서비스를 시작·중지·등록·등록 해제할 수 있게 해 주고, 심지어 PHP 스크립트 자체를 서비스로 실행되게 해 줘요.
출처: win32service
본문
이 확장은 Windows 환경에서만 동작하므로, 사용하려면 대상이 Windows라는 점을 먼저 확인해야 해요. 스크립트를 서비스로 등록하고 제어하는 데 필요한 함수들이 여러 개 제공돼요.
서비스 제어 함수
win32_create_service— SCM 데이터베이스에 새 서비스 항목을 만들어요win32_delete_service— SCM 데이터베이스에서 서비스 항목을 지워요win32_start_service— 서비스를 시작해요win32_stop_service— 서비스를 중지해요win32_pause_service— 서비스를 일시정지해요win32_continue_service— 일시정지된 서비스를 다시 재개해요win32_query_service_status— 서비스의 상태를 조회해요win32_get_last_control_message— 이 서비스로 보내진 마지막 제어 메시지를 반환해요win32_send_custom_control— 서비스에 사용자 정의 제어를 보내요win32_start_service_ctrl_dispatcher— 스크립트를 SCM에 등록해서 주어진 이름의 서비스로 동작하게 해요(서비스 본체로 쓰는 핵심 함수예요)win32_set_service_status— 서비스 상태를 갱신해요win32_set_service_exit_code— 현재 실행 중인 서비스의 종료 코드를 정의하거나 반환해요win32_set_service_exit_mode— 현재 실행 중인 서비스의 종료 모드를 정의하거나 반환해요win32_set_service_pause_resume_state— 현재 실행 중인 서비스의 일시정지/재개 능력을 정의하거나 반환해요
환경 변수·권한 관리
서비스별로 사용자 정의 환경 변수를 다루는 함수도 있어요.
win32_add_service_env_var,win32_remove_service_env_var,win32_get_service_env_vars
그리고 서비스에 대한 접근 권한을 관리하는 함수도 제공돼요.
win32_add_right_access_service,win32_read_right_access_service,win32_read_all_rights_access_service,win32_remove_right_access_service
관련 클래스
- Win32ServiceException — 서비스 처리 중 발생하는 예외 클래스예요.
- Win32Service\RightInfo — 서비스 권한 정보를 나타내는 클래스로, 도메인·사용자 이름·권한 목록을 읽는 메서드(
getDomain,getUsername,getRights등)를 제공해요.
더 알아보기
설치 요구 사항과 보안 고려 사항은 Installing/Configuring 문서의 Requirements, Installation, Security consideration 항목을 확인해 보세요. 미리 정의된 상수 목록은 Predefined Constants 문서에 있어요.