ログアウト:システム・リソースを開放する

 今回は,システムを終了するときの手順を紹介する。ユーザーがLinuxパソコンによる作業を終えたら,システムにそれを通知する必要がある。これまでの連載で紹介してきたように,LinuxをはじめとするUNIX系OSは,複数のユーザーが同時に使えるように設計されている。あるユーザーが作業を終えたことをシステムが認識できれば,そのユーザーが使用していた資源を解放し,それを他のユーザーの処理に有効活用できる。また,UNIXでは常に電源が入ったままの状態で運用することが多いので,作業後もそのままにしておくと他人に自分のホーム・ディレクトリのファイルなどを操作されてしまう恐れがある。

 作業が終わったことを通知する手続きがログアウトである。例えば,Windowsパソコンをスタンドアロンで利用している場合には,「電源を切れる状態にする」というメニューを選択して,電源までオフにする。これは,UNIXやLinuxで言うところのシャットダウンに相当する。シャットダウンについては,後で説明することにして,まずログアウトについて説明しよう。ログアウトするには,ログインしたシェルから,

$ logout

 と入力するだけで良い。これでシステムは,ユーザーがコンピュータを使い終えたと判断して,そのユーザーに割り当てていたリソースを開放する。再び,ログインのプロンプトが表示されれば,ログアウト処理は正常に完了している。

シャットダウン:ファイル・システムの整合性を保つ

 コンピュータの電源を切るには,シャットダウンという手続きを行う。シャットダウンの処理は,複数ユーザーで使っていようが,スタンドアロンで使っていようが,電源を切るときには必須だ。

 シャットダウンの手続きをとると,ログインしているユーザーに対してシステムがダウンすることを通知する。その後,ログインしているユーザーをすべて強制的にログアウトさせる。

 UNIXは通常,性能を向上させるためにデータをディスクに直接書くのではなく,書き込みバッファと呼ばれるメモリーに書いている。そして,CPUの空き時間を使って,バッファの内容をハード・ディスクに書き込んでいる。このような仕組みになっているので,突然電源を切断すると,書き込みバッファのデータが消え,ファイル・システムの整合性が取れなくなってしまう。この問題を解消するために,シャットダウンすると書き込みバッファの内容をすべてディスクに書き込んでから,システムを停止する。

 シャットダウンの手続きは,ルート権限を持った状態で,

# shutdown -h now

 と入力するだけである。この場合は,入力後すぐにシステムが停止する。引数“-h”と“now”のそれぞれで,シャットダウン後にCPUを停止(ホルト)させる処理と,今すぐシャットダウン処理を開始することを指定しているためである。