making restart upon signal TERM + vars()

This commit is contained in:
Alexander Mahr 2024-10-06 09:18:34 +02:00
parent 3eb8f65872
commit 7e36b6a74d
3 changed files with 44 additions and 10 deletions

View file

@ -10,11 +10,14 @@ services:
# the websocket-server # the websocket-server
websocket-server: websocket-server:
stop_grace_period: 1s stop_grace_period: 1s
restart: always
environment: environment:
PYTHONUNBUFFERED: true PYTHONUNBUFFERED: true
build: 'websocket-server' build: 'websocket-server'
expose: expose:
- 1080 - 1080
volumes:
- ./websocket-server/entrypoint.py:/mnt/entrypoint.py
# the client # the client
client-test-websocket: client-test-websocket:
stop_grace_period: 1s stop_grace_period: 1s

View file

@ -1,22 +1,36 @@
#!/usr/bin/env python #!/usr/bin/env python
import asyncio import asyncio
import signal
import sys
import json
from websockets.asyncio.server import serve from websockets.asyncio.server import serve
connected_clients = set()
def sigterm_handler(_signo, _stack_frame):
# Raises SystemExit(0):
sys.exit(0)
async def server(websocket): async def server(websocket):
msg = await websocket.recv() print("the handler ist called",websocket.remote_address,"vars",json.dumps(websocket.__dict__,indent=4,default=lambda o: '<not serializable>'));
print(f"IN : {msg}") # while True:
# msg = await websocket.recv()
answer = f"echoing {msg}" # print(f"IN : {msg}")
#
await websocket.send(answer) # answer = f"echoing {msg}"
print(f"OUT: {answer}") #
# await websocket.send(answer)
# print(f"OUT: {answer}")
async def main(): async def main():
async with serve(server, "0.0.0.0", 1080): async with serve(server, "0.0.0.0", 1080):
await asyncio.get_running_loop().create_future() await asyncio.get_running_loop().create_future()
if __name__ == "__main__": if __name__ == "__main__":
signal.signal(signal.SIGTERM, sigterm_handler)
print('AAAAANOWAAAsaa is this')
asyncio.run(main()) asyncio.run(main())

View file

@ -1,5 +1,22 @@
#!/bin/sh #!/bin/sh
set -x
safeexec() {
CMD="$1"
shift
test -x "$CMD" && exec "$CMD" "$@"
}
test "" = "$*" || { exec "$@"; } test "" = "$*" || { exec "$@"; }
echo "running /entrypoint.py" safeexec /mnt/entrypoint.py || safeexec /entrypoint.py
exec /entrypoint.py #
#trap "true" USR2
#while true
#do
# echo "running /entrypoint.py"
# ( /mnt/entrypoint.py || /entrypoint.py ) &
# THEPID=$!
# wait
# test "$?" -gt 128 && {
# kill "$THEPID"
# } || break
#done