ファイルが存在しないと思うようにプロセスをだます方法は?

ファイルが存在しないと思うようにプロセスをだます方法は?

~/.config/myprogramバッチキューシステムで対話的に使用できる設定を保存するプログラムがあります。インタラクティブに実行すると、このプログラムは私の設定ファイルを使用したいと思います。ただし、バッチモードで実行している場合は、関連するすべての設定を上書きするコマンドラインオプションを指定するため、構成ファイルは必要ありません。また、ネットワーク経由で設定ファイルにアクセスすると、プログラムの起動時に数秒が追加されます。ファイルが存在しない場合、プログラムはより早く起動します(各ジョブは約1分かかり、これはバッチジョブのスループットに大きな影響を与えます)。 。しかし、プログラムを対話的に使用しているので、プロファイルを移動/削除したくありません。自分のバッチジョブがクラスターでスケジュールされている期間(他のユーザーの使用量に基づいて)に応じて、バッチジョブに参加しながらインタラクティブにプログラムを使用したい場合があります。

(余談:このように遅いネットワークファイルのパフォーマンスはバグかもしれませんが、私はクラスタユーザーだけなので、解決するだけで修正することはできません。)

バッチ使用のために構成ファイルを読み取らない(または構成ファイルを読み取らないコマンドラインオプションを持つ)プログラムバージョンをビルドできますが、プログラムのビルド環境が正しく設計されていないため、設定が困難です。戻る。私はシステムのパッケージマネージャを介してインストールされたバイナリを使用することを好みます。

プログラムを変更せずに自分のプロファイルが存在しないかのように、プログラムの特定のインスタンスをだますようにするにはどうすればよいですか?フォームの周りにラッパーをしたいのですが、 pretendfiledoesntexist ~/.config/myprogram -- myprogram --various-options...他のソリューションも開いています。

ベストアンサー1

プログラムはからファイルへのパスを確認できます$HOME/.config/myprogram。したがって、ホームディレクトリが別の場所にあることがわかります。たとえば、次のようになります。

HOME=/nowhere your-program

これで、プログラムにホームディレクトリに追加のリソースが必要になる可能性があります。それが何であるかを知っている場合は、プログラムに必要なリソースへのリンクを含むプログラム用の偽のホームページを準備できます。

mkdir -p ~/myprogram-home/.config
ln -s ~/.Xauthority ~/myprogram-home/
...
HOME=~/myprogram-home myprogram

おすすめ記事