К сожалению, этот файл, который у вас есть, на самом деле является сценарием оболочки. В прошлом большинство систем / сценариев инициализации интерпретировали файлы, которые предоставляют переменные среды, используя оболочку, так что вы могли уйти от работы с оболочкой в них. Однако Systemd этого не делает. Файл среды - это действительно файл среды, а не скрипт. Это описано в systemd.exec
странице руководства :
Расширение переменной не выполняется внутри строк, однако расширение спецификатора возможно.Символ $ не имеет особого значения.
Следовательно, у вас есть 2 варианта.
Раскройте все свои переменные вручную. Значение использования CATALINA_BASE = / d01 / tomcat / prod / xyz / 1
.
Оцените файл с помощью оболочки: ExecStart = / bin / bash -ac '. / путь / к / env_file; exec / path / to / program '