I have an application that is start from a command line by a shell script that has this: /usr/local/bin/twistd --no_save --reactor=epoll --pidfile=logs/serv.pid --logfile=logs/serv.log --python=serv.py serv.py: application = twisted.application.service.Application('serv',uid=config.server_uid,gid=con fig.server_gid) my_service = service.MyService() my_service.setServiceParent(application) . In MyService class I have: def startService(self): if bad_config_file: #I want to print to stdout here end quit immediately?? twisted.internet.reactor.callLater(0, twisted.internet.reactor.stop) I cannot force twistd to print to stdout after that comment line, probably because it's daemonized by then. print 'bad error' writes it to --logfile=logs/serv.log I tried sys.stdout/stderr.write('bad error') - it's not written anywhere, not even to the logfile. sys.exit('bad error') exits, but does not print anywhere either. How do I make it print to stdout?