だからそれについてあまり考えずに次のスクリプトを実行しました。
#!/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
私のスワップスペースについて嘘をつくのには効果的でしたが、今ではこのような良い古いコマンドが欲しいです。
free -m
再び動作しますが、/proc/meminfoは完全に空であり、サーバーはもはやRAMについて何も知らないようです。
読んでくれてありがとう。
答え1
ただ削除してください:umount /proc/meminfo
これらすべてのプログラム(free
、top
などatop
)はどこかから情報を取得する必要があります。そこのどこかにあります/proc/meminfo
。
プログラムに虚偽の情報を提供するには:マウントネームスペース:
$ unshare -m bash
$$ mount --bind … /proc/meminfo
$$ myprogram
スワップスペースについて嘘をつきたい場合は、meminfo
偽のファイルを次のように設定します。FUSEファイルシステムを介した動的ファイル。 (注:名前付きパイプも機能しますが、一度に1つのプログラムからのみアクセスできる場合にのみ機能します。)