Establecer RUTA para una unidad systemd


13

¿Cómo se configura la RUTA para shells sin inicio de sesión en CentOS 7?

Específicamente, tengo una unidad systemd que necesita binarios /usr/local/texlive/2016/bin/x86_64-linux.

Intenté configurarlo /etc/environmentcon, PATH=/usr/local/texlive/2016/bin/x86_64-linux:$PATHpero luego fue mi RUTA /usr/local/texlive/2016/bin/x86_64-linux:$PATH:/usr/local/sbin:/usr/sbin.

Creé /etc/profile.d/texlive.shcon export PATH="/usr/local/texlive/2016/bin/x86_64-linux:${PATH}"pero eso solo funcionó para shells de inicio de sesión.

Miré Establecer ruta para todos los usuarios (shells de inicio de sesión y sin inicio de sesión) pero la solución ya se intentó anteriormente.

Miré Cómo agregar una ruta al sistema $ PATH para el shell sin inicio de sesión de todos los usuarios y el shell de inicio de sesión en Debian, pero no hay una solución aceptada y no estoy seguro de querer modificarlo /etc/login.defsporque podría modificarse en una actualización.

Respuestas:


17

La respuesta más simple es configurarlo PATHcomo parte de su ExecStartcomando en el archivo de la unidad systemd. Por ejemplo, si actualmente tiene

ExecStart=/bin/mycmd arg1 arg2

luego cámbielo a

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

La expansión de $PATHwill se realizará mediante bash, no systemd. Las alternativas como el uso Environment=PATH=/new/path:$PATHno funcionarán, ya que systemd no expandirá el $PATH.


Si envuelvo el comando de esta manera Y utilizo el archivo profile.d (quiero que también se agregue la ruta para los shells de inicio de sesión), ¿todavía necesitaría establecer la ruta en ExecStart? ¿O leerá eso de profile.d?
— Agrajag9

Creo que aún necesitará establecer la RUTA en ExecStart. El bash probablemente solo leerá desde profile.d si es un shell de inicio de sesión. Puede intentar agregar --loginantes -cde forzar esto en lugar de configurar la RUTA, pero hará que bash ejecute mucha configuración que podría no funcionar bien en el entorno de sistema simple y le dará errores en el registro del diario.
— meuh
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.