Recuperar do faking / proc / meminfo

2

Então, sem pensar muito, executei este script:

#!/bin/bash
SWAP="${1:-512}"
NEW="$[SWAP*1024]"; TEMP="${NEW//?/ }"; OLD="${TEMP:1}0"
sed "/^Swap\(Total\|Free\):/s,$OLD,$NEW," /proc/meminfo > /etc/fake_meminfo
mount --bind /etc/fake_meminfo /proc/meminfo

daqui: link

Funcionou muito bem para mentir sobre o meu espaço de troca, mas agora eu gostaria de bons comandos antigos como

free -m

para trabalhar de novo, mas / proc / meminfo está totalmente vazio e o servidor parece não saber mais nada sobre sua RAM, mesmo em cima ou em algum outro lugar.

Obrigado pela leitura.

    
por Lauri Elias 28.01.2016 / 00:25

2 respostas

3

Apenas desmonte: umount /proc/meminfo

Todos esses programas ( free , top , atop , etc.) precisam obter suas informações de algum lugar. E esse lugar é /proc/meminfo .

Se você deseja fornecer informações falsas para um programa, execute-o em um namespace de montagem :

$ unshare -m bash
$$ mount --bind … /proc/meminfo
$$ myprogram

Se você quiser mentir apenas sobre o espaço de troca, faça o falso arquivo meminfo a arquivo dinâmico através de um sistema de arquivos FUSE . (Nota: um pipe nomeado também funciona, mas somente se for acessado por um único programa por vez.)

    
por 28.01.2016 / 00:49
-3

Não é possível comentar, mas vá em frente e tente isto:

umount /etc/fake_meminfo
init 6
    
por 28.01.2016 / 00:44