mirror of
https://github.com/CumulusNetworks/ifupdown2.git
synced 2024-05-06 15:54:50 +00:00
fixing: ifupdown2 (subprocesses) lives on after control-c + Parsing cmd string with shlex.split instead of string.split
Ticket: CM-9905 Reviewed By: CCR-4363 Testing Done: ^C ifupdown2 while ifreload-ing interfaces test files (~500ifaces) + smoke tests
This commit is contained in:
@@ -9,6 +9,15 @@
|
||||
import os
|
||||
import fcntl
|
||||
import re
|
||||
import signal
|
||||
|
||||
from functools import partial
|
||||
|
||||
def signal_handler_f(ps, sig, frame):
|
||||
if ps:
|
||||
ps.send_signal(sig)
|
||||
if sig == signal.SIGINT:
|
||||
raise KeyboardInterrupt
|
||||
|
||||
class utils():
|
||||
|
||||
@@ -58,3 +67,11 @@ class utils():
|
||||
else:
|
||||
return False
|
||||
|
||||
@classmethod
|
||||
def enable_subprocess_signal_forwarding(cls, ps, sig):
|
||||
signal.signal(sig, partial(signal_handler_f, ps))
|
||||
|
||||
@classmethod
|
||||
def disable_subprocess_signal_forwarding(cls, sig):
|
||||
signal.signal(sig, signal.SIG_DFL)
|
||||
|
||||
|
Reference in New Issue
Block a user