SWAPCTL(8)

名称
swapctl, swapon - システムの swap 管理用ツール

書式
swapctl -A [-D dumpdev] [-p priority] [-t blk|noblk] -a [-p priority] path -c -p priority path -d path -l | -s [-k] swapon -a | path swapoff path

解説
swapctl プログラムは、システムの swap デバイスや swap ファイルの 追加、削除、表示、優先度の指定を行います。 swapon プログラムは swapctl プログラムに -a オプションをつけた場合と同じ動作をしますが、 swapon に -a をつけて呼び出した場合は例外で、この場合は swapon は swapctl に -A オプションをつけた場合と同じ動作をします。

オプション
以下のオプションが利用可能です:

-A  このオプションを指定すると、 swapctl は /etc/fstab ファイルを読んで “sw” 型と “dp” のデバイスまたはファイルを探し、該当する全エントリを swap デバイスとして追加したり、 “dp” の場合は dump デバイスとして追加します。swap デバイスが指定されていない場合には swapctl はエラーコードをもって終了します。

-D  -D オプションには引数 dumpdev も必要です。カーネルの dump デバイスが dumpdev になります。この変更は swapctl(2) システムコールを使って行われます。ダンプデバイスは、 システムがクラッシュした時に、その時点の実メモリのスナップショットを書き出す 場所として使われます。このイメージは、後でシステムをリブートした時に savecore(8) によって救い出され、原因特定のための解析時に使うことができます。

-a  -a オプションは、引数に path が 1 つ必要です。 path は swapctl(2) システムコールを使って swap デバイスとしてカーネル内のリストに追加されます。 このコマンドを swapon として使った場合、下位互換のために -a オプションは -A オプションとみなされます。

-c  -c オプションは、指定した swap デバイスや swap ファイルの優先度を変更します。

-d  -d オプションは、指定した path を、カーネル内にある swap デバイスまたは swap ファイルのリストから削除します。

-l  -l オプションは、 現在の swap デバイスと swap ファイルのリストとその利用統計を表示します。

-s  -s オプションは、現在の swap の統計のサマリを 1 行で表示します。

-p  -p オプションは、swap デバイスや swap ファイルの優先度を priority 引数の値に設定します。 これは、 -a, -c, -l オプションと同時に指定できます。

-k  -k オプションを指定すると、デフォルトである 512 バイトブロックのかわりに 1024 バイトブロックを用います。

-t  このフラグは -A オプションの機能を修飾します。 -t オプションは、追加されるデバイスの種類を指定したものに限定することができます。 引数を blk にすると、 /etc/fstab 内の全ての block device を追加するようになります。 引数を noblk にすると、 /etc/fstab 内の全ての non-block device を追加するようになります。 このオプションは、システムのスタートアップの初期段階で、 全ファイルシステムが利用可能になる前に swap の機能が必要になる可能性がある 場合、たとえば大きなファイルシステムのディスクチェックを行う場合など に有用です。

swap オプション
/etc/fstab の swap デバイスのエントリの解析時には、以下のオプションが認識されます:

priority=N
    このオプションを指定すると、指定した swap デバイスの優先度が N に 設定されます。最も高い優先度は 0 で、2 番目は 1 といった具合です。
nfsmntpt=/path
    このオプションは swap を NFS ファイルに対して行う場合に有用です。 NFS ファイルシステムをマウントするローカルなマウントポイントを 指定します。一般に、いったんこのマウントが成功すれば、 そのファイルはこのマウントポイント下で swap 用として使うことが できるようになります。例:

        server:/export/swap/client none swap sw,nfsmntpt=/swap

警告
swap 情報が /etc/fstab に記述されいない場合、システムのスタートアップスクリプト (rc(8) 参照) は swap 空間なしとしてコンフィギュレーションを実行し、 実メモリが足りなくなった場合にはおそらくかなりまずい動作をするでしょう。

ローカルおよびリモートの swap ファイルは、そのファイルが存在する ファイルシステムが読み/書き可能なようにマウントされるまで コンフィギュレーションすることはできません。 システムのスタートアップスクリプトは、これが起こる前に 全てのローカルファイルシステムに対して fsck(8) を実行する必要があります。このプロセスには、システムによっては かなりの量のメモリが必要となります。 もしチェックしなければならないローカルファイルシステムがあるマシンにおいて、 swap ファイルにだけ頼って、ローカルなブロック型 swap デバイスはないものとして コンフィギュレーションした場合、そのマシンは fsck(8) 中にはシステムには全く swap 空間がないことになり、 実メモリ不足になるかもしれず、fsck が異常終了して、 その結果としてスタートアップスクリプトが失敗するかもしれません。

歴史
swapctl プログラムは NetBSD 1.3 で初めて利用可能になりました。 オリジナルの swapon プログラムは下位互換のために提供してありますが、これは 4.0BSD で登場しました。

作者
swapctl プログラムは Matthew R. Green <mrg@eterna.com.au> によって書かれました。

バグ
swapoff コマンドと swapctl の -d オプションは NetBSD では現在のところサポートされておりません。

関連項目
swapctl(2), fstab(5), mount_nfs(8)