Ana içeriğe geç

OS sinyallerini yönetme

⚠️ Windows, Deno v1.23 itibarıyla yalnızca SIGINT ve SIGBREAK sinyallerini dinlemeyi desteklemektedir.

Kavramlar

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