summaryrefslogtreecommitdiffstats
path: root/display-sighandlers.py
diff options
context:
space:
mode:
Diffstat (limited to 'display-sighandlers.py')
-rwxr-xr-xdisplay-sighandlers.py24
1 files changed, 24 insertions, 0 deletions
diff --git a/display-sighandlers.py b/display-sighandlers.py
new file mode 100755
index 0000000..f3559f7
--- /dev/null
+++ b/display-sighandlers.py
@@ -0,0 +1,24 @@
+#!/usr/bin/env python
+# Displays all signals, their values, and their handlers.
+from __future__ import print_function
+import signal
+FMT = '{name:<10} {value:<5} {description}'
+
+# header
+print(FMT.format(name='name', value='value', description='description'))
+print('-' * (33))
+
+for name, value in [(signal_name, getattr(signal, signal_name))
+ for signal_name in dir(signal)
+ if signal_name.startswith('SIG')
+ and not signal_name.startswith('SIG_')]:
+ try:
+ handler = signal.getsignal(value)
+ except ValueError:
+ # FreeBSD: signal number out of range
+ handler = 'out of range'
+ description = {
+ signal.SIG_IGN: "ignored(SIG_IGN)",
+ signal.SIG_DFL: "default(SIG_DFL)"
+ }.get(handler, handler)
+ print(FMT.format(name=name, value=value, description=description))