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 ¶
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ış
}
?>