A sintaxe dos arquivos de configuração do systemd não suporta a sintaxe do bash.
A melhor opção é colocar o script bash em um arquivo, por exemplo "/usr/bin/clickhouse.sh".
Eu tento executar o clickhouse na CPU antiga, mas recebo um erro:
Illegal instruction
Clickhouse requer bandeira SSE 4.2.
Como sinalizadores de verificação no systemd?
Ou como escrever este bloco no systemd sem executar o script bash?
if grep -q "sse4_2" /proc/cpuinfo;
then
/usr/bin/clickhouse-server
else
echo "CPU doesn't support SSE 4.2"
fi
Obrigado
A sintaxe dos arquivos de configuração do systemd não suporta a sintaxe do bash.
A melhor opção é colocar o script bash em um arquivo, por exemplo "/usr/bin/clickhouse.sh".
O pacote do Ubuntu vem com um clickhouse-server.service
dos escritores de o software em si. Não faz esse teste. Você faz esse teste e, se falhar, não execute os comandos que iniciam ou ativam o serviço em primeiro lugar.
O clickhouse doco apresenta isso como um teste independente que você faz antes de prosseguir, antes de prosseguir para instalar o software e depois executar o serviço.
Tente criar isso no serviço systemd, usando algum tipo de script auxiliar ou não, e você terminará com um serviço que termina e reinicia automaticamente continuamente . Observe que até mesmo o antigo script van van Smoorenburg rc
que os criadores do software não abortam de fato ao tentar iniciar o serviço se a verificação falhar. O exit
foi comentado.