OS sinyallerini yönetme
⚠️ Windows, Deno v1.23 itibarıyla yalnızca SIGINT ve SIGBREAK sinyallerini dinlemeyi desteklemektedir.
Kavramlar
- Deno.addSignalListener()
OS sinyallerini yakalamak ve izlemek için kullanılabilir. - Deno.removeSignalListener()
sinyali izlemeyi durdurmak için kullanılabilir.
OS Sinyali Dinleyicisi Kurma
OS sinyallerini işlemek için API'ler, zaten aşina olduğumuz
addEventListener
ve
removeEventListener
API'lerine benzeyen bir şekilde modellemiştir.
⚠️ OS sinyallerini dinlemenin, olay döngüsünün tamamlanmasını engellemediğini unutmayın; yani, daha fazla bekleyen asenkron işlem yoksa süreç sona erecektir.
OS sinyallerini işlemek için Deno.addSignalListener()
fonksiyonunu kullanabilirsiniz:
add_signal_listener.ts
console.log("SIGINT sinyalini tetiklemek için Ctrl-C tuşuna basın");
Deno.addSignalListener("SIGINT", () => {
console.log("kesildi!");
Deno.exit();
});
// Sürecin hemen çıkmasını önlemek için bir zaman aşımı ekleyin.
setTimeout(() => {}, 5000);
Şu şekilde çalıştırın:
deno run add_signal_listener.ts
Daha önce eklenen sinyal işleyicisini kaydetmek için Deno.removeSignalListener()
fonksiyonunu kullanabilirsiniz.
signal_listeners.ts
console.log("SIGINT sinyalini tetiklemek için Ctrl-C tuşuna basın");
const sigIntHandler = () => {
console.log("kesildi!");
Deno.exit();
};
Deno.addSignalListener("SIGINT", sigIntHandler);
// Sürecin hemen çıkmasını önlemek için bir zaman aşımı ekleyin.
setTimeout(() => {}, 5000);
// 1 saniye sonra bir sinyali dinlemeyi durdurun.
setTimeout(() => {
Deno.removeSignalListener("SIGINT", sigIntHandler);
}, 1000);
Şu şekilde çalıştırın:
deno run signal_listeners.ts