On 12/3/20 9:44 AM, Richard Shaw wrote:
On Thu, Dec 3, 2020 at 2:41 AM Gargoyle <g...@rgoyle.com <mailto:g...@rgoyle.com>> wrote:

    On 02/12/2020 16:09, Richard Shaw wrote:
    Nope, it's an external networked device. They always "boot up" at
    the same time, but the computer which runs the service boots up
    faster than the device I need to connect to.

    What difference does that make - what's the actual problem you're
    having?


The service starts and tries to connect but the other system is up far enough yet to receive connections so it just fails. The only solution so far is to restart the service manually later, which is what I'm trying to work around.

For remote connections, specially when all servers are restarted at the same time I use a shell script on ExecStartPre that check for an open port on the remote server.

My case it is a database server that takes a long time on the firmware initialization, and the application servers start really fast, before the database server is started.

########### wait-tcp-port <ip_or_hostname> <port>

#!/bin/bash

IP=$1
PORT=$2
MAX_TRIES=300

OPEN_RC=2
COUNTER=1
until [[ $OPEN_RC -eq 0 || $COUNTER -gt $MAX_TRIES ]]; do
  exec 3>&2 2>/dev/null
  exec 6<>/dev/tcp/$IP/$PORT
  OPEN_RC=$?
  exec 2>&3

  if [ $OPEN_RC -eq 0 ]; then
    exec 6>&- # close output connection
    exec 6<&- # close input connection
    echo Port $IP:$PORT open
  else
    sleep 2
    COUNTER=$[$COUNTER +1]
  fi
done

if [ $COUNTER -gt $MAX_TRIES ]; then
  echo Max tries waiting for port $IP:$PORT reached
  exit 100
fi


    Also, is this a standard Fedora package? (So there may at least be a
    weak link to continued discussion on this list)


No, it's something custom. Thanks for the feedback though, I pretty much already decided to try the timer delay method

Thanks,
Richard

_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org

_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org

Reply via email to