Deve ser possível substituir o binário do subprocesso por um script wrapper (pelo menos dentro de um espaço de nomes separado).
#! /bin/bash
: replace the file or change the config file argument
exec /real/binary "$config_file"
Se isso não for possível, o arquivo pode ser substituído por algo especial (se for permitido existir quando o processo principal for iniciado):
-
Com um dispositivo de loop, o mapeador de dispositivos, o destino
flakey
e a opçãodrop_writes
você pode criar um dispositivo de bloco que descarta gravações:Se o processo criar um arquivo maior que o pretendido, talvez seja necessário tornar o dispositivo DM tão grande. Basta colocar linhas vazias, linhas de comentário ou algo parecido no final.
-
Talvez funcione para tornar o arquivo um FIFO. Provavelmente o arquivo de configuração é escrito consecutivamente do início ao fim, ou seja, sem buscas dentro do arquivo, apenas anexando. Um script leria daquele FIFO (teria que ser iniciado primeiro:
#! /bin/bash read -n 1 dummy # replace the file, i.e. by replacing a symlink which switches # between the FIFO and the real file. The open file descriptor # is not affected by that but the subprocess will open the file # instead of the FIFO cat >/dev/null # throw the input away