回答:
エディターはおそらくそのファイルに対して面白いことをしているでしょう(/ proc内のファイルは実際のファイルではなく、オペレーティングシステムの下位レベルへのインターフェイスです)。変更はおそらく大丈夫ですが、procで物事を更新する通常の方法は、次のようなシェルコマンドを使用することです。
echo 1 | sudo dd of=/proc/sys/net/ipv4/tcp_timestamps
起動するたびにこの設定を適用する場合は/etc/sysctl.d/tcp-timestamps.conf
、次のファイルを作成します:
net.ipv4.tcp_timestamps = 1
dd of
何ですか?私が理解しているのは、エコーとパイプだけですが、ddが必要な理由はわかりません。なぜ>
代わりに?
dd
は、ルートとして書き込みを実行します。コマンドパイプラインの残りの部分は特権を必要としないため、sudoで実行するのはddだけです。シェル全体をルートとして実行する場合、>
リダイレクトは問題ありません。しかし、私はroot権限で実行されるものを最小限に抑えたいです。
しばらくすると、まったく同じエラーが発生していました。調査で数分を無駄にした後、デバイスにスペースが残っていないことがわかりました。それがあなたに当てはまるかどうかを確認できます。問題をすばやく修正するには、ストレージを解放してください。
注:これは、問題の最良の技術的説明とは限りませんが、問題を迅速に修正するのに役立つ場合があります。検証済みの回答では、これについて詳しく説明しています。私の答えは、この問題をどのように修正したかを共有することでした。
私はこれがずっと前に正しく答えられていたようですが、もっと簡単なコマンドがあります:
sudo sysctl net.ipv4.tcp_timestamps=1
また、次のような他の設定でも同じことができます。
sudo sysctl vm.admin_reserve_kbytes=16384
ご覧のとおり、区切り文字を「/」から「。」に変更しながら、残りの場所を指定することにより、/ proc / sys /内の任意のファイルを変更できます。
例:「/ proc / sys / net / ipv4 / tcp_timestamps」は「net.ipv4.tcp_timestamps」として指定されます