38 lines
951 B
Python
Executable File
38 lines
951 B
Python
Executable File
#!/usr/bin/env -S python3 -u
|
|
"""
|
|
Run a local instance of Boulder for testing purposes.
|
|
|
|
Boulder always runs as a collection of services. This script will
|
|
start them all on their own ports (see test/startservers.py)
|
|
|
|
Keeps servers alive until ^C. Exit non-zero if any servers fail to
|
|
start, or die before ^C.
|
|
"""
|
|
|
|
import errno
|
|
import os
|
|
import sys
|
|
import time
|
|
|
|
sys.path.append('./test')
|
|
import startservers
|
|
|
|
if not startservers.install(race_detection=False):
|
|
raise(Exception("failed to build"))
|
|
|
|
if not startservers.start(fakeclock=None):
|
|
sys.exit(1)
|
|
try:
|
|
os.wait()
|
|
|
|
# If we reach here, a child died early. Log what died:
|
|
startservers.check()
|
|
sys.exit(1)
|
|
except KeyboardInterrupt:
|
|
print("\nstopping servers.")
|
|
except OSError as v:
|
|
# Ignore EINTR, which happens when we get SIGTERM or SIGINT (i.e. when
|
|
# someone hits Ctrl-C after running `docker compose up` or start.py.
|
|
if v.errno != errno.EINTR:
|
|
raise
|