Stopping a service can be achieved by either sending a
SIGINT <ctrl+c> or
SIGTERM signal to to the
tomodachi Python process, or by invoking the
tomodachi.exit() function, which will initiate the termination processing flow. The
tomodachi.exit() call can additionally take an optional exit code as an argument, which otherwise will default to use exit code 0.
SIGINTsignal (equivalent to using <ctrl+c>)
The process' exit code can also be altered by changing the value of
tomodachi.SERVICE_EXIT_CODE, however using
tomodachi.exit with an integer argument will override any previous value set to
All above mentioned ways of initiating the termination flow of the service will perform a graceful shutdown of the service which will try to await open HTTP handlers and await currently running tasks using tomodachi's scheduling functionality as well as await tasks processing messages from queues such as AWS SQS or RabbitMQ.
Some tasks may timeout during termination according to used configuration (see options such as
http.termination_grace_period_seconds) if they are long running tasks. Additionally container handlers may impose additional timeouts for how long termination are allowed to take. If no ongoing tasks are to be awaited and the service lifecycle can be cleanly terminated the shutdown usually happens within milliseconds.
Updated 2 months ago