Eu quero usar socat para direcionar comandos seriais através de ethernet para um conversor serial-ethernet (endereço IP estático). Eu queria saber qual seria uma boa maneira de começar a socat.
Se eu entendi tudo corretamente, o systemd me permite ter certeza de que a socat está sempre em execução ou, em caso de falha, tenta reiniciar. O arquivo .service seria parecido com:
[Service]
Type=simple
Restart=always
RestartSec=5
[Unit]
Description=my socat test
User=me
Group=me
ExecStart=/bin/bash -c '~/my_socat.sh'
[Install]
WantedBy=multi-user.target
O script seria parecido com
#!/bin/bash
socat PTY,link=/home/me/dev/valve1 TCP:192.168.11.101:5001 & socat PTY,link=/home/me/dev/valve2 TCP:192.168.11.101:5002
Esta abordagem faria o que eu quero? Socat seria reiniciado se morresse por algum motivo? E o que aconteceria se a conexão ethernet não estivesse disponível quando a socat fosse iniciada? Executá-lo a partir do shell sem conexão de rede não funciona e o comando falha com a mensagem de erro "a rede está inacessível".
Como você se certificaria se socat está sendo executado antes que meu script (python) seja executado? Você iniciaria o socat de dentro do python?