Requirements and traps.

Requirements file was missing five requirements. This might be useful to
have fixed, so I sorted that out.
    - opuslib
    - youtube_dl
    - asyncpg
    - PyNaCl
    - dataclasses

Made the sebi_machine_launcher.sh executable only under the current
owner.

Added a SIGINT trap to sebi_machine_launcher.sh. You are only restarting
while the bot returns a non-truthy exit code (i.e. non zero). SIGINT,
which triggers the Python KeyboardInterrupt builtin exception being
raised will, if unhandled, result in a non-zero exit code. Thus, if you
provide a keyboard interrupt, you will just have the bot instantly
respawn. This is fine until you have a one second lag over SSH. Then my
wrist starts to hurt from spamming CTRL-C so many times until the bot
process dies.
This commit is contained in:
neko404notfound 2018-06-20 17:51:25 +01:00
parent 1f8856b277
commit 76f7e0c36e
2 changed files with 18 additions and 6 deletions

View File

@ -3,8 +3,13 @@ numpy==1.14.0
aiofiles
# aiomultiprocess
# aiosqlite
# asyncpg
# dataclasses
# cached_property
uvloop==0.9.1
aiohttp==3.2.1
# Someone forgot to add this in.
asyncpg
# Music cog requirements
opuslib
dataclasses
PyNaCl
youtube_dl

View File

@ -1,6 +1,13 @@
#!/bin/bash
# 20th June 2018
# Esp: added a trap here, as it otherwise attempts to restart when given
# the interrupt signal. This is really annoying over SSH when I have
# a 1-second lag anyway.
trap "echo 'Received interrupt. Exiting.'; exit 0" SIGINT
until python -m src; do
echo "Sebi-Machine shutdown with error: $?. Restarting..." >&2
sleep 1
# Added colouring to ensure the date of shutdown and the exit code stands
# out from the other clutter in the traceback that might have been output.
echo -e "\e[0;31m[$(date --utc)]\e[0m Sebi-Machine shutdown with error \e[0;31m$?\e[0m. Restarting..." >&2
sleep 1
done