36 lines
837 B
Python
36 lines
837 B
Python
|
#!/usr/bin/env python
|
||
|
# -*- coding: utf-8 -*-
|
||
|
|
||
|
import signal, time
|
||
|
|
||
|
class level1app:
|
||
|
run = True
|
||
|
save = False
|
||
|
|
||
|
def sighandler(self, signum, frame):
|
||
|
if signum == signal.SIGUSR1:
|
||
|
self.save = True
|
||
|
elif signum == signal.SIGTERM:
|
||
|
self.run = False
|
||
|
elif signum == signal.SIGINT:
|
||
|
self.run = False
|
||
|
else:
|
||
|
print "Unknown signal %d received" % signum
|
||
|
|
||
|
def run(self):
|
||
|
signal.signal(signal.SIGUSR1, self.sighandler)
|
||
|
signal.signal(signal.SIGTERM, self.sighandler)
|
||
|
signal.signal(signal.SIGINT, self.sighandler)
|
||
|
|
||
|
print "Waiting for signals..."
|
||
|
|
||
|
while self.run:
|
||
|
if self.save:
|
||
|
print "Save"
|
||
|
self.save = False
|
||
|
time.sleep(0.1)
|
||
|
|
||
|
print "Exit"
|
||
|
|
||
|
level1app().run()
|