Estou executando o mesmo programa várias vezes em uma plataforma linux. Ele é compilado em outro servidor e atualizado com freqüência, e é transferido por meio do rsync para todos os servidores de "hospedagem", que não possuem software de compilação.
O problema é que quero manter todos os programas atualizados o máximo possível. O que eu pensei em primeiro lugar seria ter várias cópias do programa (é um executável, em C ++) instalado e configurado, mas o executável era um link simbólico para uma cópia do que estava sendo rsync'd.
Então, eu tenho um link simbólico apontando para um arquivo que está sendo sincronizado com o servidor de compilação.
O problema é que quando eu executo o symlink é quase como se eu tivesse rodado ele na outra pasta (aquela onde o executável está armazenado) manualmente: ele não está carregando os arquivos de configuração, porque está tentando encontrá-los no local do executável, em vez do local onde estão os links simbólicos.
Eu corro 8 cópias dele em cada VPS e atualmente executo 5 VPSes. Atualizar manualmente cada executável (mesmo com um script bash) seria impossível. O "programa" precisa ser atualizado sem problemas sempre que um usuário quiser reiniciar o seu.
Pensei em executá-lo com um script bash que primeiro copiaria o arquivo antes de executá-lo, mas haveria alguma maneira de usá-lo usando links simbólicos, o que ainda permitiria o fluxo das atualizações?
Obrigado!
Tags bash symbolic-link rsync linux