Concordo com os outros posters de que você deve tentar reescrever o serviço para não chamar o script (tudo bem se seus administradores quiserem continuar usando-o, mas o serviço systemd precisa de todas as 36 opções?) - mas também não é difícil detectar se o script foi chamado pelo systemd.
-
O systemd v232 adicionou o conceito de um ID de invocação de uma unidade, que é passado para a unidade na variável de ambiente
$INVOCATION_ID
. Você pode verificar se isso está definido ou não. -
systemd v231 + define a variável
$JOURNAL_STREAM
para serviços cujo stdout ou stderr está conectado ao diário, o que parece ser o caso do seu serviço, portanto, você também pode verificar essa variável se estiver no systemd v231. (Na v232 +,$INVOCATION_ID
é definitivamente a melhor escolha.) -
Em versões antigas do systemd, não acho que exista uma variável de ambiente que esteja sempre presente, mas você pode definir uma delas adicionando algo assim ao seu serviço:
Environment=LAUNCHED_BY_SYSTEMD=1