# signal_exit.py
import signal
import sys
def signal_handler(signal, frame):
print ('\nSignal Catched! You have just type Ctrl+C!')
sys.exit(0)
if __name__ == '__main__':
import time
signal.signal(signal.SIGINT, signal_handler)
for x in range(100):
time.sleep(1)
print (x)
当我们运行这个程序到一半时,同时按下Ctrl+C,我们会得到如下的结果:
$ python3 signal_exit.py 0 1 2 ^C Signal Catched! You have just type Ctrl+C!
# signal_exit.py
import signal
import sys
import time
class Printer:
def __init__(self):
self.x = 0
signal.signal(signal.SIGINT, self.signal_handler)
def signal_handler(self, signal, frame):
print ('\nSignal Catched! You have just type Ctrl+C! The last number is: {}'.format(self.x))
sys.exit(0)
def run(self, counter=10):
while self.x < counter:
print (self.x)
time.sleep(1)
self.x += 1
if __name__ == '__main__':
printer = Printer()
printer.run(counter=100)
此时如果在程序正在运行的状态下同时按下Ctrl+C,得到的结果如下:
$ python3 signal_exit.py 0 1 2 3 ^C Signal Catched! You have just type Ctrl+C! The last number is: 3
# signal_exit.py
import signal
import sys
def signal_handler(signal, frame):
print ('\nSignal Catched! You have just type Ctrl+C!')
sys.exit(0)
if __name__ == '__main__':
import time
signal.signal(signal.SIGINT, signal_handler)
for x in range(100):
time.sleep(1)
print (x)
当我们运行这个程序到一半时,同时按下Ctrl+C,我们会得到如下的结果:
$ python3 signal_exit.py 0 1 2 ^C Signal Catched! You have just type Ctrl+C!
# signal_exit.py
import signal
import sys
import time
class Printer:
def __init__(self):
self.x = 0
signal.signal(signal.SIGINT, self.signal_handler)
def signal_handler(self, signal, frame):
print ('\nSignal Catched! You have just type Ctrl+C! The last number is: {}'.format(self.x))
sys.exit(0)
def run(self, counter=10):
while self.x < counter:
print (self.x)
time.sleep(1)
self.x += 1
if __name__ == '__main__':
printer = Printer()
printer.run(counter=100)
此时如果在程序正在运行的状态下同时按下Ctrl+C,得到的结果如下:
$ python3 signal_exit.py 0 1 2 3 ^C Signal Catched! You have just type Ctrl+C! The last number is: 3