CentOS 7で非ログインシェルのPATHを設定するには?
特に/usr/local/texlive/2016/bin/x86_64-linux
。
/etc/environment
に設定しようとしましたが、PATH=/usr/local/texlive/2016/bin/x86_64-linux:$PATH
私のPATHはです/usr/local/texlive/2016/bin/x86_64-linux:$PATH:/usr/local/sbin:/usr/sbin
。
/etc/profile.d/texlive.sh
それを使って作成しましたが、export PATH="/usr/local/texlive/2016/bin/x86_64-linux:${PATH}"
ログインシェルでのみ機能します。
私が探していますすべてのユーザーのパス設定(ログインおよび非ログインシェル)しかし、解決策は上記で試みられた。
私が探していますDebian のすべてのユーザーの非ログインシェルとログインシェルのシステム $PATH パスを追加する方法しかし、受け入れられる解決策はなく、/etc/login.defs
更新時に変更される可能性があるため、修正する必要があるかどうかわかりません。
ベストアンサー1
最も簡単な答えは、これをPATH
systemdユニットファイルのコマンドの一部に設定することです。ExecStart
たとえば、現在
ExecStart=/bin/mycmd arg1 arg2
次に、次のように変更します。
ExecStart=/bin/bash -c 'PATH=/new/path:$PATH exec /bin/mycmd arg1 arg2'
拡張は$PATH
systemdではなくbashによって行われます。 systemdが拡張されていないため、使用などの代替はEnvironment=PATH=/new/path:$PATH
機能しません$PATH
。