설정을 저장하는 프로그램이 있습니다. ~/.config/myprogram
대화식 및 배치 큐잉 시스템과 함께 사용합니다. 대화식으로 실행할 때이 프로그램이 구성 파일을 사용하기를 원합니다. 그러나 배치 모드로 실행할 때는 모든 관련 설정을 덮어 쓰는 명령 줄 옵션을 지정하므로 구성 파일이 필요하지 않습니다. 또한 네트워크를 통해 구성 파일에 액세스하면 프로그램 시작 시간이 몇 초 증가합니다. 파일이 존재하지 않으면 프로그램이 훨씬 빠르게 시작됩니다 (각 작업은 약 1 분 정도 걸리므로 일괄 작업 처리량에 큰 영향을 미칩니다). 그러나 프로그램을 대화식으로 사용하기 때문에 구성 파일을 항상 이동 / 삭제하고 싶지 않습니다. 배치 작업이 클러스터에서 예약되는시기 (다른 사용자의 사용량에 따라)에 따라,
(제외 : 네트워크 파일 성능이 너무 느려 버그 일 가능성이 있지만 아마도 클러스터 사용자 일뿐이므로 해결하지 않고 해결할 수 있습니다.)
배치 사용을 위해 구성 파일을 읽지 않거나 명령 줄 옵션이없는 프로그램 버전을 빌드 할 수 있지만이 프로그램의 빌드 환경은 엔지니어링이 잘못되어 설정하기가 어렵습니다. 시스템의 패키지 관리자를 통해 설치된 바이너리를 사용하는 것이 좋습니다.
이 프로그램의 특정 인스턴스를 구성 파일이 존재하지 않는 것으로 위장하는 방법은 무엇입니까 (프로그램을 수정하지 않고)? 양식의 래퍼를 원 pretendfiledoesntexist ~/.config/myprogram -- myprogram --various-options...
하지만 다른 솔루션을 사용할 수 있습니다.
LD_PRELOAD
후크를 사용할 수 있습니다 . 대안 인 것보다 쉽습니다 (C를 알고 있다면 한두 시간 안에 구현할 수 있습니다) ptrace
. 아마도 fakechroot를 사용 하여이 작업을 수행 할 수도 있습니다 (LD_PRELOAD, 나는 믿습니다).