Funcionaria assim:
exec { 'my_command.sh':
command => '/bin/my_command.sh',
subscribe => [
File['/etc/mysoftware/config.xml'],
File['/etc/othersoftware/defaults'],
],
refreshonly => true,
}
A restrição óbvia aqui é que os arquivos /etc/mysoftware/config.xml
e /etc/othersoftware/defaults
também devem ser alterados via Puppet.
Se eles forem alterados por outra coisa (externa a Puppet), veja a resposta de Felix.
Você também pode se inscrever em Package['xxx']
ou qualquer outra dependência mais adequada, é claro.