|
26 | 26 |
|
27 | 27 | class Agent:
|
28 | 28 |
|
29 | | - AGENT_VERSION = "1.0.4" |
| 29 | + AGENT_VERSION = "1.0.5" |
30 | 30 | SAAS_DASHBOARD_ADDRESS = "https://agent-api.stackimpact.com"
|
31 | 31 |
|
32 | 32 | def __init__(self, **kwargs):
|
@@ -61,7 +61,7 @@ def get_option(self, name, default_val = None):
|
61 | 61 |
|
62 | 62 | def start(self, **kwargs):
|
63 | 63 | if not min_version(2, 7) and not min_version(3, 4):
|
64 | | - raise Exception('Supported Python versions 2.6 or highter and 3.4 or higher') |
| 64 | + raise Exception('Supported Python versions 2.6 or higher and 3.4 or higher') |
65 | 65 |
|
66 | 66 | if platform.python_implementation() != 'CPython':
|
67 | 67 | raise Exception('Supported Python interpreter is CPython')
|
@@ -114,24 +114,26 @@ def _signal_handler(signum, frame):
|
114 | 114 |
|
115 | 115 | register_signal(signal.SIGUSR2, _signal_handler)
|
116 | 116 |
|
117 | | - # destroy agent on exit |
118 | | - def _exit_handler(*arg): |
119 | | - if not self.agent_started or self.agent_destroyed: |
120 | | - return |
| 117 | + if self.get_option('auto_destroy') == False: |
| 118 | + # destroy agent on exit |
| 119 | + def _exit_handler(*arg): |
| 120 | + if not self.agent_started or self.agent_destroyed: |
| 121 | + return |
| 122 | + |
| 123 | + try: |
| 124 | + self.message_queue.flush() |
| 125 | + self.destroy() |
| 126 | + except Exception: |
| 127 | + self.exception() |
121 | 128 |
|
122 | | - try: |
123 | | - self.message_queue.flush() |
124 | | - self.destroy() |
125 | | - except Exception: |
126 | | - self.exception() |
127 | 129 |
|
| 130 | + atexit.register(_exit_handler) |
128 | 131 |
|
129 | | - atexit.register(_exit_handler) |
| 132 | + register_signal(signal.SIGQUIT, _exit_handler, once = True) |
| 133 | + register_signal(signal.SIGINT, _exit_handler, once = True) |
| 134 | + register_signal(signal.SIGTERM, _exit_handler, once = True) |
| 135 | + register_signal(signal.SIGHUP, _exit_handler, once = True) |
130 | 136 |
|
131 | | - register_signal(signal.SIGQUIT, _exit_handler, ignore_default = False) |
132 | | - register_signal(signal.SIGINT, _exit_handler, ignore_default = False) |
133 | | - register_signal(signal.SIGTERM, _exit_handler, ignore_default = False) |
134 | | - register_signal(signal.SIGHUP, _exit_handler, ignore_default = False) |
135 | 137 |
|
136 | 138 | self.agent_started = True
|
137 | 139 | self.log('Agent started')
|
@@ -178,7 +180,6 @@ def error(self, message):
|
178 | 180 |
|
179 | 181 | def exception(self):
|
180 | 182 | if self.get_option('debug'):
|
181 | | - self.print_err(sys.exc_info()[0]) |
182 | 183 | traceback.print_exc()
|
183 | 184 |
|
184 | 185 |
|
|
0 commit comments