設定を保存するプログラムがあります ~/.config/myprogram
インタラクティブに使用することもバッチキューシステムで使用することもできます。対話的に実行する場合、このプログラムで構成ファイルを使用する(および使用する)必要があります。ただし、バッチモードで実行する場合は、関連するすべての設定を上書きするコマンドラインオプションを指定するため、構成ファイルは必要ありません。さらに、ネットワーク経由で構成ファイルにアクセスすると、プログラムの起動時間が数秒長くなります。ファイルが存在しない場合、プログラムは非常に高速に起動します(各ジョブには約1分しかかからないため、バッチジョブのスループットに大きな影響があります)。しかし、私はプログラムを対話的にも使用するため、構成ファイルを常に移動/削除したくありません。クラスターでバッチジョブがスケジュールされるタイミング(他のユーザーの使用状況に基づく)に応じて、
(さておき、ネットワークファイルのパフォーマンスが非常に遅いことはおそらくバグですが、私はクラスターの単なるユーザーであるため、修正することはできず、回避することしかできません。)
バッチ用に構成ファイルを読み取らない(またはコマンドラインオプションを持たない)バージョンのプログラムをビルドできましたが、このプログラムのビルド環境は設計が不十分でセットアップが困難です。システムのパッケージマネージャーからインストールされたバイナリを使用したいです。
このプログラムの特定のインスタンスをだまして構成ファイルが存在しないふりをするにはどうすればよいですか(プログラムを変更せずに)。フォームのラッパーを期待していますが、 pretendfiledoesntexist ~/.config/myprogram -- myprogram --various-options...
他のソリューションにもオープンです。
LD_PRELOAD
フックを使用できます。これは、代替手段であるCよりも簡単です(Cを知っている場合は1〜2時間で実装できます)ptrace
。また、おそらくfakechrootを使用してこれを行うこともできます(LD_PRELOADであると思います)。