Cmds.__run(): Don't exit(0)

WSGI doesn't like sys.exit() being called, so avoid it. Two cases
need to be taken into consideration:

  1. No exception thrown by self.args.func()

     The variable exit_status is zero, we can check that and _not_
     call sys.exit()

  2. Exception thrown by self.args.func()

     In that case, the exception should be raised, to be caught by
     WSGI / ASGI whatever to do what they want with it. The code
     calling sys.exit() is never reached. Hence, we need to add
     --backtrace to the invocation options.

Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
Jan Lindemann 2025-07-05 12:27:11 +02:00
commit d35a5588cd

View file

@ -136,7 +136,8 @@ class Cmds: # export
slog(NOTICE, f'Writing profile statistics to {self.args.write_profile}') slog(NOTICE, f'Writing profile statistics to {self.args.write_profile}')
pr.dump_stats(self.args.write_profile) pr.dump_stats(self.args.write_profile)
sys.exit(exit_status) if exit_status:
sys.exit(exit_status)
def __del__(self): def __del__(self):
if self.__own_eloop: if self.__own_eloop: