偽/proc/meminfoから回復

偽/proc/meminfoから回復

だからそれについてあまり考えずに次のスクリプトを実行しました。

#!/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

ここから:http://linux-problem-solver.blogspot.com.ee/2013/08/create-fake-swap-in-openvz-vps-if-you-get-swapon-failed-eration-not-permissed-error. HTML

私のスワップスペースについて嘘をつくのには効果的でしたが、今ではこのような良い古いコマンドが欲しいです。

free -m

再び動作しますが、/proc/meminfoは完全に空であり、サーバーはもはやRAMについて何も知らないようです。

読んでくれてありがとう。

答え1

ただ削除してください:umount /proc/meminfo

これらすべてのプログラム(freetopなどatop)はどこかから情報を取得する必要があります。そこのどこかにあります/proc/meminfo

プログラムに虚偽の情報を提供するには:マウントネームスペース:

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

スワップスペースについて嘘をつきたい場合は、meminfo偽のファイルを次のように設定します。FUSEファイルシステムを介した動的ファイル。 (注:名前付きパイプも機能しますが、一度に1つのプログラムからのみアクセスできる場合にのみ機能します。)

関連情報