라이브러리
[PHP] EvLoop::signal - 현재 이벤트 루프 인스턴스와 연관된 EvSignal 워처 객체를 생성합니다.
EvLoop::signal
EvLoop은 PHP의 비동기 I/O 라이브러리인 Ev의 주요 클래스입니다. EvLoop은 이벤트 루프를 관리하고, 이벤트를 처리하는 역할을 합니다. EvLoop::signal은 이벤트 루프에 대한 신호를 등록하는 메서드입니다.
# 신호란?
신호는 프로세스에 대한 이벤트입니다. 예를 들어, Ctrl+C를 누르면 프로세스에 SIGINT 신호가 전송됩니다. 신호는 프로세스가 특정 이벤트에 반응할 수 있도록 합니다.
# EvLoop::signal 사용법
EvLoop::signal 메서드는 두 개의 매개변수를 받습니다.
* `$signal`: 신호의 종류를 나타내는 정수입니다. 예를 들어, SIGINT는 2, SIGTERM은 15입니다.
* `$callback`: 신호가 발생했을 때 호출할 콜백 함수입니다.
#hostingforum.kr
php
use EvLoop;
use EvSignal;
$loop = new Loop();
// SIGINT 신호에 대한 콜백 함수
$callback = function () {
echo "SIGINT 신호가 발생했습니다.
";
};
// SIGINT 신호를 등록합니다.
$loop->signal(SIGINT, $callback);
// 이벤트 루프를 시작합니다.
$loop->run();
# 예제
이 예제는 SIGINT 신호에 대한 콜백 함수를 등록하고, 이벤트 루프를 시작합니다. SIGINT 신호가 발생하면 콜백 함수가 호출됩니다.
#hostingforum.kr
php
use EvLoop;
use EvSignal;
$loop = new Loop();
// SIGINT 신호에 대한 콜백 함수
$callback = function () {
echo "SIGINT 신호가 발생했습니다.
";
// 이벤트 루프를 종료합니다.
$loop->stop();
};
// SIGINT 신호를 등록합니다.
$loop->signal(SIGINT, $callback);
// 이벤트 루프를 시작합니다.
$loop->run();
# 신호 처리하기
신호를 처리하는 방법은 여러 가지가 있습니다. 예를 들어, SIGINT 신호가 발생하면 프로세스를 종료할 수 있습니다. SIGTERM 신호가 발생하면 프로세스를 종료할 수 있습니다.
#hostingforum.kr
php
use EvLoop;
use EvSignal;
$loop = new Loop();
// SIGINT 신호에 대한 콜백 함수
$callback = function () {
echo "SIGINT 신호가 발생했습니다.
";
// 프로세스를 종료합니다.
exit(0);
};
// SIGTERM 신호에 대한 콜백 함수
$callback_term = function () {
echo "SIGTERM 신호가 발생했습니다.
";
// 프로세스를 종료합니다.
exit(0);
};
// SIGINT 신호를 등록합니다.
$loop->signal(SIGINT, $callback);
// SIGTERM 신호를 등록합니다.
$loop->signal(SIGTERM, $callback_term);
// 이벤트 루프를 시작합니다.
$loop->run();
# 참고
EvLoop::signal 메서드는 PHP 7.2 이상에서 사용할 수 있습니다. 또한, 신호를 처리하는 방법은 운영체제에 따라 다를 수 있습니다.
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.