프로세스 모니터링
webman은 기본적으로 모니터링 프로세스를 제공합니다. 이 프로세스는 두 가지 기능을 지원합니다.
- 파일 업데이트를 모니터링하고 새로운 비즈니스 코드를 자동으로 다시 로드합니다(일반적으로 개발 시 사용).
- 모든 프로세스의 메모리 사용량을 모니터링하며, 만약 특정 프로세스의 메모리 사용량이
php.ini
의memory_limit
제한을 초과할 경우 해당 프로세스를 안전하게 자동 재시작합니다(비즈니스에 영향 없음).
모니터링 구성
구성 파일 config/process.php
의 monitor
구성
global $argv;
return [
// 파일 업데이트 감지 및 자동 로드
'monitor' => [
'handler' => process\Monitor::class,
'reloadable' => false,
'constructor' => [
// 이 디렉토리들을 모니터링합니다
'monitorDir' => array_merge([ // 모니터링할 파일이 있는 디렉토리
app_path(),
config_path(),
base_path() . '/process',
base_path() . '/support',
base_path() . '/resource',
base_path() . '/.env',
], glob(base_path() . '/plugin/*/app'), glob(base_path() . '/plugin/*/config'), glob(base_path() . '/plugin/*/api')),
// 이 접미사를 가진 파일들을 모니터링합니다
'monitorExtensions' => [
'php', 'html', 'htm', 'env'
],
'options' => [
'enable_file_monitor' => !in_array('-d', $argv) && DIRECTORY_SEPARATOR === '/', // 파일 모니터링 활성화 여부
'enable_memory_monitor' => DIRECTORY_SEPARATOR === '/', // 메모리 모니터링 활성화 여부
]
]
]
];
monitorDir
는 업데이트를 모니터링할 디렉토리를 구성하는 데 사용됩니다(모니터링할 디렉토리의 파일 수가 너무 많지 않아야 합니다).
monitorExtensions
는 monitorDir
디렉토리 내에서 어떤 파일 확장이 모니터링되어야 하는지를 구성합니다.
options.enable_file_monitor
의 값이 true
이면 파일 업데이트 모니터링이 활성화됩니다(리눅스 시스템에서 디버그 모드로 실행할 경우 기본적으로 파일 모니터링이 활성화됩니다).
options.enable_memory_monitor
의 값이 true
이면 메모리 사용량 모니터링이 활성화됩니다(메모리 사용량 모니터링은 윈도우 시스템에서 지원되지 않습니다).
팁
윈도우 시스템에서windows.bat
또는php windows.php
를 실행해야 파일 업데이트 모니터링을 활성화할 수 있습니다.