|
1 | 1 | from argparse import ArgumentParser, Namespace
|
2 | 2 | import asyncio
|
3 | 3 | import logging
|
| 4 | +import os |
4 | 5 | import signal
|
5 | 6 | from typing import (
|
6 | 7 | Any,
|
@@ -254,35 +255,31 @@ def trinity_boot(args: Namespace,
|
254 | 255 | networking_process.start()
|
255 | 256 | logger.info("Started networking process (pid=%d)", networking_process.pid)
|
256 | 257 |
|
257 |
| - main_endpoint.subscribe( |
258 |
| - ShutdownRequest, |
259 |
| - lambda ev: kill_trinity_gracefully( |
| 258 | + def kill_trinity_with_reason(reason: str) -> None: |
| 259 | + kill_trinity_gracefully( |
260 | 260 | logger,
|
261 | 261 | database_server_process,
|
262 | 262 | networking_process,
|
263 | 263 | plugin_manager,
|
264 | 264 | main_endpoint,
|
265 | 265 | event_bus,
|
266 |
| - ev.reason |
| 266 | + reason=reason |
267 | 267 | )
|
| 268 | + |
| 269 | + main_endpoint.subscribe( |
| 270 | + ShutdownRequest, |
| 271 | + lambda ev: kill_trinity_with_reason(ev.reason) |
268 | 272 | )
|
269 | 273 |
|
270 | 274 | plugin_manager.prepare(args, trinity_config, extra_kwargs)
|
271 | 275 |
|
272 | 276 | try:
|
273 | 277 | loop = asyncio.get_event_loop()
|
| 278 | + loop.add_signal_handler(signal.SIGTERM, lambda: kill_trinity_with_reason("SIGTERM")) |
274 | 279 | loop.run_forever()
|
275 | 280 | loop.close()
|
276 | 281 | except KeyboardInterrupt:
|
277 |
| - kill_trinity_gracefully( |
278 |
| - logger, |
279 |
| - database_server_process, |
280 |
| - networking_process, |
281 |
| - plugin_manager, |
282 |
| - main_endpoint, |
283 |
| - event_bus, |
284 |
| - reason="CTRL+C / Keyboard Interrupt" |
285 |
| - ) |
| 282 | + kill_trinity_with_reason("CTRL+C / Keyboard Interrupt") |
286 | 283 |
|
287 | 284 |
|
288 | 285 | def kill_trinity_gracefully(logger: logging.Logger,
|
@@ -363,6 +360,7 @@ def launch_node(args: Namespace, trinity_config: TrinityConfig, endpoint: Endpoi
|
363 | 360 | def display_launch_logs(trinity_config: TrinityConfig) -> None:
|
364 | 361 | logger = logging.getLogger('trinity')
|
365 | 362 | logger.info(TRINITY_HEADER)
|
| 363 | + logger.info("Started main process (pid=%d)", os.getpid()) |
366 | 364 | logger.info(construct_trinity_client_identifier())
|
367 | 365 | logger.info("Trinity DEBUG log file is created at %s", str(trinity_config.logfile_path))
|
368 | 366 |
|
|
0 commit comments