This should make bittornado save state on HUP and TERM signals.
Code:
--- /usr/bin/btlaunchmanycurses 2005-01-21 19:09:15.000000000 +0100
+++ /tmp/btlaunchmanycurses 2005-02-21 08:31:58.000000000 +0100
@@ -28,7 +28,7 @@
import curses
import curses.panel
from curses.wrapper import wrapper as curses_wrapper
- from signal import signal, SIGWINCH
+ from signal import signal, SIGWINCH, SIGTERM, SIGHUP
except:
print 'Textmode GUI initialization failed, cannot proceed.'
print
@@ -92,9 +92,12 @@
self.messages = []
self.scroll_pos = 0
self.scroll_time = 0
+ self.shutdown = False
self.scrwin = scrwin
signal(SIGWINCH, self.winch_handler)
+ signal(SIGTERM, self.term_handler)
+ signal(SIGHUP, self.term_handler)
self.changeflag = Event()
self._remake_window()
@@ -106,6 +109,9 @@
self._remake_window()
self._display_messages()
+ def term_handler(self,signum,stackframe):
+ self.shutdown = True
+
def _remake_window(self):
self.scrh, self.scrw = self.scrwin.getmaxyx()
self.scrpan = curses.panel.new_panel(self.scrwin)
@@ -248,7 +254,7 @@
curses.panel.update_panels()
curses.doupdate()
- return inchar in (ord('q'),ord('Q'))
+ return inchar in (ord('q'),ord('Q')) or self.shutdown
def message(self, s):
self.messages.append(strftime('%x %X - ',localtime(time()))+s)