Bir systemd birimi için PATH ayarlama


13

CentOS 7'de giriş yapmayan mermiler için PATH nasıl ayarlanır?

Özellikle, içinde ikili dosyalar gerektiren bir systemd birimim var /usr/local/texlive/2016/bin/x86_64-linux.

Bunu belirlenen girişiminde /etc/environmentile PATH=/usr/local/texlive/2016/bin/x86_64-linux:$PATHama sonra benim YOLU oldu /usr/local/texlive/2016/bin/x86_64-linux:$PATH:/usr/local/sbin:/usr/sbin.

Oluşturduğum /etc/profile.d/texlive.shile export PATH="/usr/local/texlive/2016/bin/x86_64-linux:${PATH}"ama bu sadece giriş kabukları çalıştı.

Tüm Kullanıcılar için Yol Ayarla'ya (Oturum Açma ve Oturum Açma Olmayan Kabuklar) baktım, ancak çözüm zaten denenmişti.

Ben debian tüm kullanıcıların giriş olmayan kabuk ve giriş kabuk için $ PATH sistemine bir yol eklemek için baktım ama kabul edilen bir çözüm yoktur ve ben /etc/login.defsbir güncelleme değişebilir çünkü değiştirmek istiyorum emin değilim .

Yanıtlar:


17

En basit cevap, systemd Unit dosyasındaki komutunuzun bir PATHparçası olarak ayarlamaktır ExecStart. Örneğin, şu anda

ExecStart=/bin/mycmd arg1 arg2

sonra olarak değiştir

ExecStart=/bin/bash -c 'PATH=/new/path:$PATH exec /bin/mycmd arg1 arg2'

Genişlemesi $PATHsistemd tarafından değil bash tarafından yapılacaktır. Environment=PATH=/new/path:$PATHSystemd olarak kullanma gibi alternatifler çalışmaz $PATH.


Komutu bu şekilde sararsam ve profile.d dosyasını kullanırsam (giriş kabukları için de yol eklenmesini istiyorum), yine de ExecStart'ta yolu ayarlamam gerekir mi? Yoksa profilden okunacak mı? D?
Agrajag9

Bence hala ExecStart'ta PATH ayarlamanız gerekecek. Bash muhtemelen bir profil kabuğu ise yalnızca profile.d'den okuyacaktır. Ekleyerek deneyebilirsiniz --loginönce -cPATH settting yerine bu zorlamak için, ancak çıplak systemd ortamda iyi sonuç vermeyebilir kurulum bash çalıştırmak çok yapacak ve günlük günlüğüne size hataları verir.
meuh
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.