システムデバイスのPATH設定

システムデバイスのPATH設定

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

最も簡単な答えは、これをPATHsystemdユニットファイルのコマンドの一部に設定することです。ExecStartたとえば、現在

ExecStart=/bin/mycmd arg1 arg2

次に、次のように変更します。

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

拡張は$PATHsystemdではなくbashによって行われます。 systemdが拡張されていないため、使用などの代替はEnvironment=PATH=/new/path:$PATH機能しません$PATH

おすすめ記事