Diyelim ki python ile yazılmış böyle önemsiz bir cini var:
def mainloop():
while True:
# 1. do
# 2. some
# 3. important
# 4. job
# 5. sleep
mainloop()
ve bunu start-stop-daemonvarsayılan olarak send SIGTERM( TERM) sinyalini kullanarak daemonize ediyoruz --stop.
Farzedelim ki şu anki adımdır #2. Ve şu anda TERMsinyal gönderiyoruz .
Olan şey, infazın derhal sona ermesidir.
Sinyal olayını kullanarak işleyebileceğimi fark ettim signal.signal(signal.SIGTERM, handler)ama şey şu an mevcut yürütmeyi kesintiye uğratması ve kontrolü geçmesi handler.
Yani, sorum şu - geçerli yürütmeyi kesmek değil, ancak TERMayrı bir iş parçacığında (?) Sinyal işlemek mümkün shutdown_flag = Trueki böylece mainloop()zarif bir şekilde durdurmak için bir şans vardı ayarlamak mümkün mü?
signalfdteslimini maskeleyerekSIGTERM.