Qual é o melhor lugar para o script em si?
Isso poderia ser ...
/usr/local/bin/
Onde (por convenção) armazenar o arquivo com o estado interno do programa no Ubuntu Server?
Eu não acho que exista tal localização. Você poderia usar /var/local/
. Eu vi vários métodos e um popular parece usar /opt/
. Desta forma:
/opt/{software_name}/
/opt/{software_name}{.version_1}/
/opt/{software_name}{.version_2}/
...
onde o primeiro é um link simbólico para a versão ativa. E um ./bin
dentro desses diretórios para os binários, um ./log
para um log (rotacionado) e, no seu caso, um ./state
com ou sem um identificador exclusivo. E tudo configurado para usuário root com permissões n00
para que ninguém possa ler o conteúdo de "estado".
Deixa claro onde você pode encontrar qualquer coisa que você precisa.