Gracefully shutdown services in GetTor
I get these errors when I shutdown or restart GetTor. Seems like something we can easily implement:
2020-04-29T15:24:03+0000 [gettor#debug] SERVICE:: Calling shutdown on sendmail
2020-04-29T15:24:03+0000 [twisted.internet.defer#critical] Unhandled error in Deferred:
2020-04-29T15:24:03+0000 [twisted.internet.defer#critical]
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/twisted/internet/base.py", line 428, in fireEvent
result = callable(*args, **kwargs)
File "/usr/lib/python3/dist-packages/twisted/application/service.py", line 296, in stopServ
ice
l.append(defer.maybeDeferred(service.stopService))
File "/usr/lib/python3/dist-packages/twisted/internet/defer.py", line 151, in maybeDeferred
result = f(*args, **kw)
File "/usr/lib/python3/dist-packages/twisted/application/service.py", line 296, in stopServ
ice
l.append(defer.maybeDeferred(service.stopService))
--- <exception caught here> ---
File "/usr/lib/python3/dist-packages/twisted/internet/defer.py", line 151, in maybeDeferred
result = f(*args, **kw)
File "/srv/gettor.torproject.org/home/gettor/gettor/services/__init__.py", line 60, in stop
Service
self.instance.shutdown()
builtins.AttributeError: 'Sendmail' object has no attribute 'shutdown'