win32_start_service_ctrl_dispatcher
(PECL win32service >=0.1.0)
win32_start_service_ctrl_dispatcher — Hizmet yöneticisine ismi belirtilen hizmet gibi davranacak bir
betik tanıtır
Açıklama
win32_start_service_ctrl_dispatcher(
string $isim
,
bool $zarafet_kipi
= true
):
void
Hizmet başlatıldıktan sonra hizmet süreci iki şey yapmalıdır.
Birincisi, Hizmet Yöneticisine hizmetin çalıştığını söylemektir.
Bu, win32_set_service_status() işlevi
WIN32_SERVICE_RUNNING
sabiti ile çağrılarak elde
edilir. Hizmet gerçekten çalışmaya başlamadan önce uzun bir işlem
gerçekleştirmeniz gerekiyorsa,
WIN32_SERVICE_START_PENDING
sabitini kullanabilirsiniz.
İkincisi, sonlandırılması gerekip gerekmediğini belirleyebilmesi için hizmet
yöneticisi ile denetimlere devam etmektir. Bu, düzenli aralıklarla
win32_get_last_control_message() işlevinin çağrılması ve
dönüş kodunun uygun şekilde işlenmesiyle elde edilir.
Dikkat
0.2.0 sürümünden beri, bu işlev sadece "cli" SAPI ile çalışmaktadır.
Başka SAPI'lerde bu işlev devre dışıdır.
Dönen Değerler
Hiçbir değer dönmez.
1.0.0 öncesinde, Başarı durumunda WIN32_NO_ERROR
, başarısızlık durumunda bağımsız değişkenlerle
ilgili bir sorun varsa veya bir Win32 Hata Kodu sözkonusuysa
false
döner.
Hatalar/İstisnalar
1.0.0 öncesinde, SAPI "cli"
değilse, bu işlev
E_ERROR
seviyesinde bir hata çıktılardı.
1.0.0 ve sonrasında, SAPI "cli"
değilse, bu işlev
Win32ServiceException yavruluyor.
Örnekler
Örnek 1 - win32_start_service_ctrl_dispatcher() örneği
Hizmetin SCM altında çalışıp çalışmadığına bakar.
<?php
if (!win32_start_service_ctrl_dispatcher('dummyphp')) {
die("Galiba hizmet yöneticisi altında çalışmıyorum");
}
win32_set_service_status(WIN32_SERVICE_START_PENDING);
while (WIN32_SERVICE_CONTROL_STOP != win32_get_last_control_message()) {
# İşlemler burada.
# Döngüyü yinelemeden önce 30 saniyeden fazla beklememeye çalış
}
?>