(PECL win32service >=0.1.0)
win32_start_service_ctrl_dispatcher — Hizmet yöneticisine ismi belirtilen hizmet gibi davranacak bir betik tanıtır
Bir hizmet, Hizmet yöneticisi üzerinden başlatıldığında hizmet sürecinin hizmet izleme ve iletişim oluşumlarını sağlayıp sağlamadığına bakılır. Bu işlev, hizmet yöneticisi ile düşük seviyeli iletişimi sağlamak üzere bir evre çatallayarak bu gereksinimi yerine getirir.
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.
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.
isim
Hizmetin win32_create_service() tarafından tanıtılan kısa ismi.
zarafet_kipi
Zarif bir çıkış için true
. Hatalı çıkış için false
.
Ayrıntılar için bkz:win32_set_service_exit_mode()
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.
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.
Sürüm: | Açıklama |
---|---|
PECL win32service 1.0.0 |
Bağımsız değişkenlerdeki veri geçersiz ise artık
ValueError yavrulanıyor,
evvelce false dönerdi.
|
PECL win32service 1.0.0 | Hata durumunda artık Win32ServiceException yavrulanıyor, evvelce bir Win32 Hata Kodu dönerdi. |
PECL win32service 1.0.0 | Dönüş türü artık void, evvelce mixed idi. |
PECL win32service 0.4.0 |
zarafet_kipi bağımsız değişkeni eklendi.
|
PECL win32service 0.2.0 |
Bu işlev sadece "cli" SAPI ile çalışır.
|
Ö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ış
}
?>