Adakah mungkin untuk menangkap isyarat Ctrl+C (SIGINT) dan menjalankan fungsi pembersihan secara 'tertunda'?

PHPz
Lepaskan: 2024-02-08 23:18:33
ke hadapan
1051 orang telah melayarinya

是否可以捕获 Ctrl+C 信号 (SIGINT) 并以“延迟”方式运行清理函数?

editor php Yuzai akan menjawab soalan biasa untuk semua orang dalam artikel ini: "Adakah mungkin untuk menangkap isyarat Ctrl+C (SIGINT) dan menjalankan fungsi pembersihan dalam cara 'tertunda' semasa menulis skrip PHP , kami selalunya perlu mengendalikan beberapa operasi pembersihan, seperti menutup sambungan pangkalan data, mengeluarkan sumber, dsb. Apabila pengguna menekan kombinasi kekunci Ctrl+C, isyarat gangguan sistem SIGINT dicetuskan, menyebabkan skrip ditamatkan serta-merta. Tetapi bagaimana jika kita ingin melakukan beberapa pembersihan sebelum skrip ditamatkan? Mari kita bincangkan bersama!

Kandungan soalan

Saya mahu menangkap isyarat Ctrl+C (SIGINT) yang dihantar daripada konsol dan mencetak beberapa jumlah separa berjalan. SIGINT) 信号并打印出一些部分运行总计。

解决方法

您可以使用 os/signal 包来处理传入信号。 ctrl+csigint,这样你就可以用它来捕获os.interrupt

Penyelesaian

Anda boleh menggunakan pakej os/signal untuk mengendalikan isyarat masuk. 🎜ctrl🎜+🎜c🎜 ialah signin, jadi anda boleh menggunakannya untuk menangkap os .interrupt. 🎜
c := make(chan os.Signal, 1)
signal.Notify(c, os.Interrupt)
go func(){
    for sig := range c {
        // sig is a ^C, handle it
    }
}()
Salin selepas log masuk
🎜Cara anda membuat program ditamatkan dan mencetak maklumat terpulang kepada anda sepenuhnya. 🎜

Atas ialah kandungan terperinci Adakah mungkin untuk menangkap isyarat Ctrl+C (SIGINT) dan menjalankan fungsi pembersihan secara 'tertunda'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!