1#!/usr/local/bin/lua52 2 3local cqueues = require("cqueues") 4local signal = require("cqueues.signal") 5 6local cq = cqueues.new() 7 8local sl = signal.listen(signal.SIGTERM, signal.SIGINT) 9 10--signal.ignore(signal.SIGTERM) 11signal.block(signal.SIGTERM, signal.SIGINT) 12 13 14cq:wrap(function() 15 local signo 16 17 while true do 18 signo = sl:wait(0.5) 19 20 print(signo, signal[signo]) 21 22 if signo == signal.SIGINT then 23 os.exit(true) 24 end 25 end 26end) 27 28 29cq:wrap(function() 30 while true do 31 cqueues.sleep(1) 32 signal.raise(signal.SIGTERM) 33 end 34end) 35 36 37while not cq:empty() do 38 local ok, err = cq:step() 39 if not ok then error(err) end 40end 41