Created
July 10, 2024 18:51
-
-
Save mageddo/c9d86ae9c4f095a2376b14841c79de79 to your computer and use it in GitHub Desktop.
Vanilla Supervisor
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# Start the first process | |
./my_first_process -D | |
status=$? | |
if [ $status -ne 0 ]; then | |
echo "Failed to start my_first_process: $status" | |
exit $status | |
fi | |
# Start the second process | |
./my_second_process -D | |
status=$? | |
if [ $status -ne 0 ]; then | |
echo "Failed to start my_second_process: $status" | |
exit $status | |
fi | |
# Naive check runs checks once a minute to see if either of the processes exited. | |
# This illustrates part of the heavy lifting you need to do if you want to run | |
# more than one service in a container. The container will exit with an error | |
# if it detects that either of the processes has exited. | |
# Otherwise it will loop forever, waking up every 60 seconds | |
while /bin/true; do | |
ps aux |grep my_first_process |grep -q -v grep | |
PROCESS_1_STATUS=$? | |
ps aux |grep my_second_process |grep -q -v grep | |
PROCESS_2_STATUS=$? | |
# If the greps above find anything, they will exit with 0 status | |
# If they are not both 0, then something is wrong | |
if [ $PROCESS_1_STATUS -ne 0 -o $PROCESS_2_STATUS -ne 0 ]; then | |
echo "One of the processes has already exited." | |
exit -1 | |
fi | |
sleep 60 | |
done |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment