1
0
Fork 0
mirror of https://github.com/kbumsik/VirtScreen.git synced 2025-02-12 11:21:53 +00:00

More graceful signal handling

This commit is contained in:
Bumsik Kim 2018-06-09 11:30:31 -04:00
parent 9ec6256fc1
commit ee0efafa02
No known key found for this signature in database
GPG key ID: E31041C8EC5B01C6

View file

@ -350,12 +350,6 @@ class XRandR(SubprocessWrapper):
self.check_output(args_addmode)
# After adding mode the program should delete the mode automatically on exit
atexit.register(self.delete_virtual_screen)
for sig in [signal.SIGTERM, signal.SIGHUP, signal.SIGQUIT]:
signal.signal(sig, self._signal_handler)
def _signal_handler(self, signum=None, frame=None) -> None:
self.delete_virtual_screen()
os._exit(0)
def get_primary_screen(self) -> Display:
self._update_screens()
@ -758,6 +752,12 @@ def main() -> None:
help='Portrait mode. Width and height of the screen are swapped')
parser.add_argument('--hidpi', action='store_true',
help='HiDPI mode. Width and height are doubled')
# Add signal handler
def on_exit(self, signum=None, frame=None):
sys.exit(0)
for sig in [signal.SIGINT, signal.SIGTERM, signal.SIGHUP, signal.SIGQUIT]:
signal.signal(sig, on_exit)
# Start main
args = parser.parse_args()
if any(vars(args).values()):
main_cli(args)