Odpowiedź zależy od tego, czy zmienna ma być stała (to znaczy nie powinna być modyfikowana przez użytkownika otrzymującego jednostkę), czy zmienna (powinna być ustawiona przez użytkownika).
Ponieważ jest to twoja jednostka lokalna, granica jest dość rozmyta i tak czy inaczej zadziałałoby. Jeśli jednak zaczniesz go rozpowszechniać i skończy się /usr/lib/systemd/systemto, stanie się to ważne.
Stała wartość
Jeśli wartość nie musi być zmieniana dla każdej instancji, preferowanym sposobem byłoby umieszczenie jej jako Environment=, bezpośrednio w pliku jednostki:
[Unit]
Description=My Daemon
[Service]
Environment="FOO=bar baz"
ExecStart=/bin/myforegroundcmd
[Install]
WantedBy=multi-user.target
Zaletą tego jest to, że zmienna jest przechowywana w jednym pliku z jednostką. Dlatego plik jednostki jest łatwiejszy do przenoszenia między systemami.
Zmienna wartość
Jednak powyższe rozwiązanie nie działa dobrze, gdy sysadmin ma lokalnie zmieniać wartość zmiennej środowiskowej. Mówiąc dokładniej, nowa wartość musiałaby być ustawiona przy każdej aktualizacji pliku jednostki.
W tym przypadku należy użyć dodatkowego pliku. Jak - zazwyczaj zależy od zasad dystrybucji.
Jednym szczególnie interesującym rozwiązaniem jest użycie /etc/systemd/system/myservice.service.dkatalogu. W przeciwieństwie do innych rozwiązań ten katalog jest obsługiwany przez systemd i dlatego nie zawiera ścieżek specyficznych dla dystrybucji.
W takim przypadku /etc/systemd/system/myservice.service.d/local.confumieścisz taki plik, który doda brakujące części pliku jednostkowego:
[Service]
Environment="FOO=bar baz"
Następnie systemd łączy dwa pliki podczas uruchamiania usługi (pamiętaj, aby systemctl daemon-reloadpo zmianie jednego z nich). A ponieważ ta ścieżka jest używana bezpośrednio przez systemd, nie używasz EnvironmentFile=do tego.
Jeśli wartość ma zostać zmieniona tylko w niektórych systemach, których dotyczy problem, możesz połączyć oba rozwiązania, zapewniając domyślną wartość bezpośrednio w jednostce i lokalne zastąpienie w innym pliku.
sysconfigścieżka jest specyficzna dla Fedory, ale pytanie dotyczy Arch Linux. Myślę, że odpowiedź paluh jest bardziej interesująca