CentOS 6を使用してSGEクラスタを設定しています。私のシステム管理者は、RPMを介して(例えば、make installなどを介して)インストールされていないアプリケーションをインストールしており、これらのアプリケーションは非標準ディレクトリにある必要があります/share/apps/install/bin/
。この場合、現在このパスはほとんどのセッション(login、qloginなど)に追加されます。 .)、/share/apps/etc/environment.sh
このパスを介してPERL5LIBにもいくつかの内容が追加されます /etc/bashrc
。 environment.sh
私が経験している問題は、/share/apps/install/bin
crontabから呼び出されるような特定のインスタンスに追加されないことです。
私の個人的なcrontabまたは特定のスクリプトまたはcrontabエントリで手動で明示的に設定できることを知っていますが、外部のどこかに設定をしたり、すべてのユーザーへのすべてのパスに非標準ディレクトリを配置したいと思いますPATH=/bin:/usr/bin:/blah/blah:...
。/etc/profile
/etc/bashrc
.../bin
ベストアンサー1
PATH
に含める値を含むファイルを追加します/etc/profile.d
。これらのファイルは、Bash、Csh、Zsh、または tcsh などのシェルから検索されるように設定されます。
はい
PATHに次の値を追加する必要があります。
/usr/local/share/bin
/etc/profile.d/ourstuff.sh
だから私たちは次の行でファイルを作成しました。
export PATH=/usr/local/share/bin:$PATH
拡張子を持つファイルは、.sh
Bash や Zsh などのシェルから検索されます。拡張子を持つファイルは.csh
Csh と tcsh で提供されます。
編集#1 - フォローアップ
OPは次の質問をしました。
はい、しかしクローンの仕事はどうですか?そこでも道を見つける方法はありますか? cronが/etc/profileまたは/etc/bashrcを呼び出さないようです。
これに対する私の答えは次のとおりです。
それを修正することはそうではありません。SHELL=/bin/bash
デフォルトのシェル(通常)をオーバーライドするには、cronを設定する必要があります/bin/sh
。ユーザー crons (BASH_ENV="$HOME/.bashrc") にこれを設定し、システム crons に設定することもできますBASH_ENV="/root/.bashrc"
。これがこの問題を解決する1つの方法です。
私はこれをしないことを強くお勧めします。特定の環境が必要なスクリプトを自分で設定できるようにします。すべての問題を世界中で解決しようとしないでください!