プロセス - みる会図書館


検索対象: UNIX MAGAZINE 1991年10月号
20件見つかりました。

1. UNIX MAGAZINE 1991年10月号

図 3 プロセスツリーの例 csh kterm bash bash init xclock getty emacs csh a . out 親となりプログラムを子プロセスとして実行するというか たちになります。 プロセスには、親が死ぬと子どもも死んでしまうものと、 親が死んでも子どもは生きているものの 2 不頁があります。 たとえは・、シェル ( 親 ) からプログラム ( 子 ) を実行している ときは、シェルが死ぬとプログラムも死んでしまいますが、 プログラムをバックグランドで実行させると死なすに生き 続けます。 また、親がいなくなった子プロセスは、プロセス IDI の /sbin/init プロセスにつながって、その後は init プロセス が面倒をみることになります。 プロセスの殺し方 次に、なんらかの都合でプロセスを殺さなければならな くなったとしましよう。その場合は、 ki Ⅱコマンドを使って プロセスにシグナルを送ります。 kill コマンドは、次のように使います。 kill [-sig] プロセ D s なはシグナルを表します。シグナルにはいくっかあり ますが、実際によく使うのは以下の 3 つでしよう。 [SIGHUP] ハングアップ シグナル番号 1 HUP で指定 CSIGKILL] 強制終了 シグナル番号 9 KILL で指定 CSIGTERM] ソフトウェア終了 シグナル番号 15 TERM で指定 シグナルは、シグナル番号でも指定できます。 UNIX MAGAZINE 1991.10 しかし、 ースーバーユーサーへの道 6 間違える危険性があるので、面倒でもちゃんとシグナルの 名前を打つようにしましよう。なお、シグナルを省略する と SIGTERM が送られます。 また、プロセスを殺すときは子どものプロセスから殺し ます。親のほうをさきに殺してしまうと、子どもがゾンピ ( 後述 ) になってしまうことがあります。 実際の例を見てみると次のようになります。 % kill 251 % kill -KILL 1453 root# kill ー肌旧 1 普通のユーサーは自分のプロセスしか殺せませんが、 root はすべてのプロセスを殺せるので細心の注意が必要 です。たとえば、ある回線の getty を新たに起動させると きには、上の例のようにⅲ it にハングアップ・シグナルを 送りますが、そのときに間違えて、 root# kill —KILL 1 などとしてしまったら・・ 。 root で kill コマンドを実行 する際は、実行前にかならすもう 1 度確認しましよう。 ゾンビブロセス さきほど、 root であれはすべてのプロセスが殺せると書 きましたが、これにはちょっと嘘があります。しつは、 root でも殺せないプロセスもあります。それがゾンビブロセス と呼ばれるものです。 ふつう、親プロセスからできた子プロセスは終了すると ( exit システムコールを発すると ) 、親プロセスの wait シ ステムコールを受けてメモリなどの資源を解放し、プロセ ステープルから消されます。この exit システムコールを発 してから wait システムコールを受けるまでの状態を、、ゾ ンビ状態〃といいます。子プロセスは、終了しているのに 親がいなくなったりして wait システムコールがない、と いう状況になるとこのゾンビ状態のままプロセスが残って しまいます。これがゾンビブロセスです。 ゾンビブロセスは、、すでに死んでいる〃のですが、終了 処理中なので k Ⅲでは殺せません。たまたま親プロセスが ロ 51

2. UNIX MAGAZINE 1991年10月号

ロ ネットワークのエラー ネットワーク関係のエラーでは、やはり Ethernet に関 1e0 : Ethernet jammed するものが多いようです。 このようなメッセージは、 Ethernet のターミネータが sytemfull" というメッセージ自身により、 / var ファイル ん。この機能は、 messages ファイルに溜まる $/var file うところがミソで、つねにまとめられるわけではありませ められて記録されます。このヾ複数回比較的連続して〃とい して繰り返されたときに、それを何回繰り返したかがまと このメッセージは、同しメッセージが複数回比較的連続 1 t message repeated 13 times どういうときに表示されるのかをみていきましよう。 こでは、そのほかのメッセージが何を意味しているか、 そのほかのメッセージ というエラーが表示されることもあります。 しているのに、、、 Ethernetjammed" ではなぐ、 nocarrier はありません。たとえば、本当は同軸ケープルがショート Ethernet のエラーメッセージは、かならすしも正確で であったりします。 シーパ・ケープルが外れていたり、 Ethernet ポードの故障 っていないことを表します。原因は Ethernet へのトラン このメッセージの場合は、うまくネットワークにつなが 1e0 : no carrier 換しなければなりません。 Ethernet ケープルを傷つけてしまったらケープルごと交 体のエラーですれターミネータは取り付けるだけですが、 ernet に傷をつけたときなどに表示されます。 Ethernet 自 外れていたり、トランシーバの取付けなどに失敗して Eth- 50 システムが溢れてしまうなどという事故を回避するために 導入されたものです。 このはか、システムではなくアプリケーションのエラー メッセージなどがあります。 sendmail のエラーや NIS に 関するものなどで、ほかのプロセスとうまく通信できない ときにメッセージが表示されることがあります。頻繁に出 るようなら、それらのアプリケーションを調べて直す必要 があります。 システムの異常がエラーメッセージなどのかたちで目に 見えればすぐに ( そうでないこともありますが ) 気づきま すが、メッセージは表示されないけれどなんか変ゃなあ、 というようにすぐに分からない場合もあります。 そのようなときも、システムの不調の原因をみつけなけ ればなりません。さて、どうしますか ? 「そんなもん、リプートに決まってんがな ! 」 そ、そうですね。まあ、なんかおかしい、というような ときにはリプートすれば復旧することも多いでしよう。で も、誰かが使っていたり、何かのサーバーになっていて簡 単にはリプートできないとか、リプートしてもやつばりお かしいなどというときには、どこがどうおかしいのかきち んと調べるべきです。 こでは、システムの異常をどのようにしてみつけ、正 常な状態に戻すかをみていきましよう。 プロセスのお話 システムの状態を調べる前に、プロセスのお話をしてお きましよう。皆さんご存しのとおり、あるプログラムやア プリケーションなどは、、プロセス〃という単位で実行され ます。さらに、 UNIX では、時分割スケジューリングによ りマルチプロセスで動いています。 それぞれのプロセスは、はかのプロセスと無関係に動い ているわけではありません。プロセスは、図 3 のようにツ リー構造を形成しており、親子関係があります。たとえば、 ある端末からプログラムを実行した場合、端末のシェルが システム不調の調べ方 UNIX MAGAZINE 1991.10

3. UNIX MAGAZINE 1991年10月号

ースーバーユーサーへの道 6 TIME_WAIT ESTABLISHD ESTABLISHD ESTABLISHD 10C 訌 ost. sunrpc monkeyOI. 1023 monkey02.1022 mo ey02. login tcp 0 localhost .2396 tcp 1 mo 凱 key00.10g ⅲ tcp 0 monkeyOO. 10g 土 n tcp 0 monkey00.1023 これは、 monkeyOO で netstat を実行した例です。 mon- key01 と monkey02 から 1 人すっ rlogin でログインし てきており、 monkey02 にリモートログインしている人が 1 人いることが分かります。 さらに一 a オプションを付けると、 LISTEN 状態のソケ ットに関する情報も出力するので、 inetd などのネットワ これから紹介するフリーソフトウェアの sps や top は、 ーク・デーモンが存在して、サービス受付中になっている カーネルに依存しています。したがって、サポートされて かどうかが確認できます。 いる OS や CPU に注意してください。 ps と同し働きで、プロセスどうしのつながりや親子関係 がよく分かるのがこの sps (show process status) コマン ドです。これはフリーソフトウェアなので、別途入手した り、ソースからコンパイルしてインストールする必要があ ります。使い方は、 SPS コ user ... ] コ tty sps [ [ ー ] cdefgijkoqrs1vwyABDFNPSTUWZ ] [ process . です。このコマンドにも多数のオプションがありますが、 、ゝろですが、このコマンドで状態を調べる前に初期化する必 こで紹介するのはほんの一部です。詳しくはマニュアル 要があります。これには、一 i オプションを使います。初期 を参照してくださいね。 化すると、 /etc/spsinfo というデータファイルが作られま とりあえす、実行してみましよう。 す。 ・・といいたいとこ root# sps —i ←初期化 ( root でなければ / etc / spsinfo カイ乍れない ) 初期化作業は、カーネル (/vmunix) を作りなおすたびに 調べることができます。 必要になります。初期化が終って初めてプロセスの状態を 例を見てみましよう。 % sps Ty User Proc# C011 皿田 ld p6 baba 14103 —bash p6. * 14644 emacs—egg 14645 /bin/bash -i 14650 sps-os4.1 67 ( 54152k ) processes , 1 ( 908k ) busy , 25 ( 2960k ) loaded, 42 ( 848k ) swapped 各フィールドのうち、 Ty はターミナルのタイプを、 User す。最後のエントリは、現在のすべてのプロセスの状態を はユーサー名を表します。ただし、 1 つ前のエントリと直 表しています。 接関係のあるプロセスであれば * 〃か当〃で表します。 この例からは、 67 のプロセスが起動されており、そのう さらにソ〃はその前のプロセスと同しプロセスグループ ち 1 つが実行中 ( もちろん sps コマンドです ) 、 25 のプロ セスが実メモリ上にあり、 42 のプロセスがディスクにスワ に属することを表します。 Pr 。 c # はプロセス ID 、 Com- ップされていることが分かります。 mand は ps コマンドと同しように実行コマンドを表しま 61 UNIX MAGÄZINE 1991.10

4. UNIX MAGAZINE 1991年10月号

ほかのユーサーのプロセスを見るには、 -A または一 U オ、ゝーについて出力し、 -U を指定するとその後に続けて入力 プションを指定します。 -A を指定するとすべてのユーサ / したユーサーについてだけ出力します。 % sps —Ug satoru Ty User Proc# Pgrp# Command co satoru 12435 12435 -bash 12440 12440 /usr/bin/X11/xinit —geometry 93X12 + 570 + 0 ーⅡ co sole —T CO * 12441 12441 X : 0 CO * 12442 12442 xtem -geometry + 1 + 1 ーⅡ login -display unix : 0 —C -geome CO * 12443 12443 sh /home/monkey03/satoru/. Xrc. twm 12449 12443 tvtwm -display monkey01 : 0.0 12450 12443 ktem —geometry 80X40 + 570 + 204 —fk k14 —fn a14 12461 12461 bash p2 * て 014464 14464 -u * Sat012452 12443 ktem —geometry 80X61 + 0 + 0 —fk k14 —fn a14 12460 12460 bash 12454 12443 xclock -geometry 100X100 + 830 + 797 -update 60 12455 12443 sbiff —nopopup —geometry 50X50 + 938 + 7 12457 12457 /bin/bash * 13663 13663 tail —f update-log 67 ( 54152k ) processes , 1 ( 908k ) busy , 25 ( 2952k ) loaded, 42 ( 848k ) swapped ここで指定している g オプションは、プロセスグループ 使い方は、 を表示するためのものです。、、にとなっているところは、 top [-Sbinqu] [-d co れ襯 ] C-s m 司 [number] 1 つ前のプロセスと同しプロセスグループになっているこ です。端末の画面の大きさに合わせて、 1 画面にトップの とが分かりますね。 プロセスから順に 5 秒ごとにアップデートしながら表示 tOP します。 -d オフションでアップデートの回数、 -s オプショ ンでアップデート間隔が指定できます。襯′襯わげを指定す ると、トップからその数だけのプロセスを表示します。 S オ プションを付けると、 init や pager などのシステムプロセ スも表示します。そのはかのオプションについては、マニ システムで、どのプロセスが走っているかをリアルタイ ムで表示してくれるのがこの top コマンドです。このコマ ュアルを参照してください。 ンドを使えば、どういうプロセスが時間を追って起動され また、表示中にアップデート期間の調節や、表示するプ ているかがよく分かります。 top もフリーソフトウェアで ロセス数の変更も可能です。詳しくはマニュアルをどうぞ。 す。 それでは、例を見てみましよう。 LD 8 tO tn tn ロ 0 1 0 0 0 0 3 9 9 0 0 0 0 (D っ 0 0 0 0 0 ・ 1 0 0 ロ ) 0 0 つん 0 0 0 0 8 tn 1 0 tn ・ 1 ( O Q) Q) 0 0 0 k 1 1 亠•P つん , 1 - 主 00 tn tQ V) t.Q -1 ・ 1 , 8 4- ( 0 っ一 9 ・ 1 tn H 。田 8 00 っム 4- っ ~ ロ ) つんつん Q) 0 0 ロ 0 1 ロ ) ロ 0 8 1 1 Q) : 9 ・ 1 t.n tO っ ~ 0 d 0 tn Q) 0 0 d d 0 0 CO ・ 1 0 A< 916 0 0 2 62 UNIX MAGAZINE 1991.10

5. UNIX MAGAZINE 1991年10月号

wait をおこなわない ( バグかな ? ) ために生したゾンピな おこなってくれるので、めでたくゾンピプロセスはいなく らば、親プロセスを終了させる以外に手はありません。 rsh なります。 などセッション中に一時的にゾンピが発生するコマンドは、 kill ー 9 でも死なないプロセスやゾンビブロセスの発 生原因としては、そのプロセスが使用中のデバイスやファ いくっかあります。この場合はそのセッションが完了する イル ( NFS の場合 ) のハングアップが考えられます。とく まで放置すればいいでしよう。親プロセスの異常動作なら に、親 PID が 1 であるゾンピプロセスはこれに間違いあり ば、またそれが強制終了させてもかまわないものならば、 親プロセスを kill で殺します。親プロセスがいなくなる ません。 この場合には、その根本原因を解消するかリプートする と、プロセス ID 1 ( init ) が養い親になり、 init は終了した 子プロセスに対する wait システムコール発行をちゃんと しかありません。 おけば、一 a オプションは不要です ( カーネルのリコンフ ロ ィグについては前号の「カーネルのリコンフィグ」の節 を見てください ) 。 > b sd(O,2, の—a ・ newfs コマンドで sdOa のファイルシステムを作りな さあたいへん、ルート・パーティションが壊れてもうた一 普通なら、「しゃあないなあ。テープから戻すとするか」 おす などと言いながらバックアップ・テープを捜せばよいでし # newfs /dev/rsdOa よう。バックアップがなくても、インストール・メディア ・ sd0a を適当なディレクトリ ( / mnt など ) にマウントし、 さえあればなんとか回復できます。 sd2a をコピーする しかし、マシンが止まった状態にあるならミニルートを 立ち上げなければなりませんし、ネットワーク経由のプー # mount /dev/sdOa /mnt トもサーバーが必要なのでなにかと手間がかかります。 # dump Ofs ー 10000 / ー ()d /mnt; restore rf ー ) のようなとき、もしあなたのマシンにディスクが 2 つ以上 ( 注 : この場合のソ〃は sd2a) 装備されているのなら、バックアップ・ルートと呼ばれる ものを作っておくことをお勧めします。 ・ rnstallboot コマンドを実行し、 sdOa のプートプロック にプートローダーと / boot の位置を書き込む ( insta ル バックアップ・ルートの作成は、さはど難しいものでは boot については後述 ) ありません。 sd0 以外のディスク ( sd2 など ) に a パーティ ションを作っておき、そこにルート ・ノヾーアインヨンのコ # cd /usr/kvm/mdec ピーを置いておくだけでよいのです。このとき、ルート・ # i t 1b00t /mnt/boot bootsd /dev/rsd0a パーティションの復旧作業は、次のような手順でおこない ・ sd0a の fstab のなかのルート・パーティションを書き ます。 換える ・プートの際、ディスク sd2 を指定する /dev/sd2a このとき一 a (ask) オプションを指定するとスワップデ バイスを訊ねてくるので、適当なスワップデバイス /dev/sdOa ( 記 0b など ) を指定します。なお、 sd2a の /vmunix をリ コンフィグしてスワップデバイスをあらかしめ指定して ルートを守ろう バックアップりト ニルートなどを使って立ち上げるよりは、かなり簡単 52 UNIX MAGAZINE 1991.10

6. UNIX MAGAZINE 1991年10月号

システムの動作を確認、モニターするためのツールがい くつかあります。これらを使えば、詳細にシステムの状態 を知ることができます。 vmstat システム全体の動作状態を知りたいときに、 /usr/ucb/ vmstat (virtual memory statistics) を使います ovmstat システムの動作状態を知る 0 0 0 0 0 0 0 0 30 14 16 71 0 0 、、、はシステム内を検索し、プロセス、仮想メモリ、ディスク、 トラップ、 CPU アクティビティについての統計情報を知 らせてくれます。ですから、どうも反応が遅いような場合 にはこのコマンドで調べてみると、原因の所在を判断する 手助けになるでしよう。使い方は次のとおりです。 vmstat [ -cfisS ] [ [ interval [ co 社厩 ] ] 通常は 1 回だけの表示ですが、切ルおよび 00 ″厩 を指定すれば、連続的に切ルに 1 回の表示をじ厩 回おこないます。 % vmstat 5 5 procs memory cpu re 0 0 0 0 0 at 0 5 0 0 0 page 0 0 0 0 1 po di sk faults avrn 0 0 0 0 0 fre 400 320 284 300 312 PI 3 0 0 0 0 fr 4 0 0 0 0 sr SO dl 1 0 0 0 0 d2 s3 in sy cs us sy id 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 2 0 0 0 0 0 0 0 0 0 0 0 0 0 84 86 18 187 3 89 14 402 5 169 19 20 17 18 2 1 0 0 2 96 5 94 1 99 0100 各フィールドの意味は、次のようになっています。 procs プロセスの状態を表す 58 us は優先順位が普通のものと低いもののユーサー時間、 cpu CPU 時間の使用割合を表示 数、 cs は CPU のコンテクスト・スイッチの回数 ⅲはデバイスによる割込み回数、 sy はシステムコール 単位で表示 faults トラップと割込み回数を 5 秒ごとに平均化し 1 秒 disk ディスクのアクセス回数を表す 平均化して 1 秒単位で表示 page ページングの回数と利用状況を 5 秒ごとに集計し、 つねに 0 を表示 ) フリーな実メモリのサイズ (avm は SunOS の機構上、 avm は現在使われている仮想メモリのページ数、 fre は memory 仮想メモリと実メモリの使用状況を表す 行可能であるがスワップアウトされているプロセス ジング待ちなどでプロックされているプロセス、 w は実 r は run キューに入っているプロセス、 b は I/O やペー sy はシステム時間 3 、 id は CPU のアイドル時間 -s 、 -S 、一 f オプションを与えると、 vmstat はプー ト以後に蓄積したデータのサマリーを出力します。この場 pstat す。 vfork の数、そのときの仮想メモリのページ数を表示しま 出力されます。また、 f オプションを付けると、 fork と フラグではデバイスごとの割込み回数の総数と発生頻度が 合、れや 0 ″厩引数は無視されます。たとえば、 -i システム内のテ pstat を使います。 ープルの使用状態を知るには、 / etc / 3 プロセスが、ユーザー・モード ( システムコール以外 ) で消費した時間を第ユー ザー時間をといいます。また l. プロセスのシステムコールを実行するためと割 込み処理のカーネルが働いている時間を第システム時間〃と呼びます。 UNIX MAGAZINE 1991.10

7. UNIX MAGAZINE 1991年10月号

e $ & 0 ee 0 ce ファイルアクセスの高速化 ローカルなファイルシステム (UNIXFileSystem: 以 下 UFS と略 ) も、 NEWS-OS4.0 までにかなり高速化 されていました。 NEWS-OS4.1 では、 NFS クライア ントと同様、キューイングされているデータ転送待ち行 列内の I / O 要求を I / 0 の属性 ( 同期、非同期など ) に応 して動的にスケジューリングすることにより、 I/O が多 い場合の待ち時間を減少させています [ 6 ] [ 7 ] 。 ディスクレス・マシンの高速化 NFS および UFS の高速化により、ディスクレス・マ シンを使用した際の性能も向上します。さらに、 swap を NFS マウントしている場合には、テキストキャッシュ を禁止することによって不必要なデータ転送を防ぎ、サ ーバーのキャッシュ効率を改善し、性能向上を図ってい ます。 プロセスは、終了するときにそのテキスト部をすべて スワッフ。領域に書き出します。次にそのプロセスが起動 されたときに、スワッフ。領域を捜し、テキストが残って いたらそれを読み込みます。これは、ファイルシステム から読み込むよりも高速なためです。これを、、テキスト キャッシュ〃と呼んでいます。 ディスクレスの場合はスワップも NFS でおこなって いるので、スワッフ。領域またはファイルシステムのいず れから読み込んでも大差ありません。また、同しテキス トデータがネットワークを 2 回流れることになります から、効率も悪くなります。 物理ページ割当て方法の改良 RISCCPU の性能は、キャッシュのヒット率に大きく 左右されます。 たとえば、プロセス A のあるべージが解放されたあと で、そのページが別のプロセス B のページに割り当てら れたとします。すると、そのページを参照していたキャ ッシュは無効になってしまいます。また、そのページが 解放され、別のプロセスに割り当てられた場合も対応す るキャッシュは無効になります。 このようにキャッシュをどんどん無効にすると、 RISCCPU では性能向上は望めません。そこで、解放さ 34 れたページを再利用するときに、描まで使われていた ページはできるだけ利用しないようにしました。つまり、 よく利用されていると思われるべージのキャッシュを無 駄にせすにすむわけです。 NEWS-OS 4.1 では、物理べージの割当ての際にキ ャッシュの利用効率を向上させるようにしました。これ によって、 CPU の性能低下が最小限に抑えられました。 機能強化について 次に、機能強化のなかから 2 つ紹介します。 NIS コンフィギュレーション機能 従来、 NIS (Network lnformation Service 、旧 YP) を利用した場合、下記の 3 つを除き、クライアントが参 照するデータベースはすべて NIS サーバーのものに限 られていました。 /etc/pas swd /etc/group /etc/hosts (NEWS-OS 4.0 以降のみ、 /etc/resolv. conf の設定により可 ) NEWS-OS 4 . 1 から、 NIS のコンフィギュレーショ ンをするファイル ( / etc / nis. c 。 (f) を用意しました。 このファイルの記述を変更することによって、クライア ントがデータベースを参照する順序を指定できるように なりました。 従来は、 NIS の利用時に、たとえば services データベ ースに独自のエントリを追加しようとした場合、 ・ NIS マスターサーバーの services データベースに工 ントリを追加してもらう ・ NIS の利用をやめ、ローカルな services データベー ス ( 以下 /etc/services) にエントリを追加する のいすれかの方法を選択しなければなりませんでした。 これに対し、 NEWS-OS 4.1 では、 ・ /etc/services にエントリを追加する UNIX MAGAZINE 1991.10

8. UNIX MAGAZINE 1991年10月号

スーバー そ似也 ユーサーへの道 6 各フィールドの意味は、 ps コマンドとほば同しです。 SIZE はデータ、スタックなどを含むトータルのサイズ、 RES はメモリ上のサイズです。 WCPU は ps コマンドの CPU にあたるもので ( 重みが付けられた平均利用率 ) 、 TOP コマンドの CPU は生の CPU 利用率です。 top コマ ンドで表示されるプロセスの順序は、この CPU の値でソ ートされたものです。 この例を見ると、 aguri の formula というプロセスが重 いようですそれと、この t 叩というプログラム自身も かなり重くて、システムのパフォーマンスを下げていると システムの状態を調べるおもなツールをみてきましたが、 イムに報告してくれます。ただし、システムにかなりの負 うなデータをグラフやメーターのような表示でリアルタ perfmon 、 perfmeter です。これらは、 vmstat と同しよ その一例が X ウインドウの xperfmon や SunView の イカルに表示してくれるものがあります。 これら以外にもウインドウ・システムなどを使ってグラフ 荷がかかるのが欠点です。 もいえます。 umount について 工トセトラ この特集の第 1 回 ( 1991 年 5 月号 ) でも紹介しましたが、 マウントしているファイルシステムをアンマウントしよう とした場合、 /usr : Device busy のようなメッセージが表示され、無情にもコマンドを実行 してくれないことがあります。原因は、いくつか考えられ ます。たとえは、スーパーユーサーになる前の、普通のユ ーサーである自分 ( 第 1 回では、、、自縛霊〃と呼んでいまし た ) が、マウントを外そうとしているファイルシステム上に いることがあります。このように、あるユーザーが存在し ているファイルシステムはアンマウントできません。 % vi monkey. tex tem—name : U 凱 10W Ⅱ teminal type / 1 同様に、実際には誰もいないはすのファイルシステムで も、プロセスがオープンしているファイルが存在するファ イルシステムはアンマウントできません。 UNIX から見れ ば、人間もプロセスも同しューザーには変わりないという ことです。 このような事態に対しては、残念ながらこれという対策 はありません。 termcap と terminfo 当 これまで、ⅵや more がうまく動かなかったことはあり ませんか ? とくに、ウインドウを利用している場合、 xterm や wterm などのターミナル・エミュレータを新た にインストールしたときなどによく怒られます。たとえば、 ロ visual needs addressable cursor or upline capability のように・ 。さて、これはどうしてなのでしようか。 ⅵや more などターミナルの情報 ( 画面制御のエスケー プシーケンスなど ) を利用するプログラムは、ターミナル UNIX MAGAZINE 1991.10 情報のデータベース・ファイルを参照し、その制御をおこ なっています。 BSD 系 UNIX では /etc/termcap (SunOS では、実際には /usr/share/lib/termcap にシン 63

9. UNIX MAGAZINE 1991年10月号

をやめなければ根本的な解決にはなりません。 /homep€—ティションの場合はたいていユーザーの責 けましよう。 ールしていくと、いつかは破綻してしまいますね。気をつ しようか。あまりにも次々とアプリケーションをインスト 多いのが、アプリケーションのインストールによるもので は、ルート・パーティションと同し措置を施します。次に ない /usr/adm や /usr/spool の溢れでしよう。このとき ケースは、 /var/adm や /var/spool などにリンクしてい 次は、 / usr パーティションが溢れる原因です。よくある 当然です このようなファイルをみつけたときは即座に消します。 式のファイルが / dev の下に作られてしまいます。 などのようにデバイスファイル名を間違えると、 tar 形 て 00t # tar cf /dev/rdt0 . /home たとえば、 てファイルが作られることもあります。 通吊、 ーには特殊ファイルしかないのですが、間違っ 4)/dev ディレクトリを調べる ションにシンポリック・リンクを張りましよう。 独立したバーティションにするか、余裕のあるパーティ スーバーユーサーへの道 6 、ゝ去してもらいます。とくに古い core を抱えているユーザ ーがいたら、注意してあげましよう。 UNIX では、ファイルが rm(unlink システムコール ) で消されても、なんらかのプロセスによってオープンされ たままだと、ファイルシステムから切り離されるだけでデ イスク領域の解放がおこなわれません。 たとえば、 kterm のロギングをオンにしたままログファ イルを rm で消して安心していると、 ls では見えなくなっ たログファイルがどんどん大きくなり、いつかファイルシ ステムが溢れてしまいます。 、、 filesystemfull" 対策として、なんらかのプロセスにオ ープンされている可能性のあるファイルを消去するときは、 rm を使わず、 % cp /dev/null file などとして、ファイルのディスクプロックを解放するよう にします。これでディスクの容量に余裕ができれば、どの プロセスが原因となったかを究明する時間が稼げます。 0 N FS のエラー 任ですから、各ューサーに頼んでファイルを整理したり消 NFS に関するエラーで多いのは、 NFS getattr failed for server monkey02 : RPC : Timed out というものでしよう。これは、 NFS マウントしているファ イルにアクセスしようとしたが、 NFS サーバーがダウン していたり、過負荷で一定時間内に応答できないときに起 こります。 NFS サーバーがダウンしている場合には、サーバーが 上がるまで待っしかありません。メッセージが気になるよ うでしたらアンマウントしておけばいいでしよう。サーバ ーの過負荷でタイムアウトが起こる場合には、 NFS がハ /, ードマウントであれば何度もアクセスしにいきますから、 いすれはうまくいくはすです。ただし、サーバーがダウン していると、いつまでたってもカーソルが民ってこないこ とになります。ソフトマウントであれば、その操作は無視 されてしまいます。過負荷でタイムアウトしがちなときに は、 N FS マウントのタイムアウト時間を調整するといい 次に多いエラーメッセージは、 でしよう。 vmunix : NFS server mo ey02 not respondxng still tryxng でしよう。これは、マシンがプートしたときなどに、 NFS マウントしようとしたがサーバーからの応答がない場合に 起こります。マウントは、引き続きバックグランドで実行 されていますが、成功すると、 UNIX MAGAZINE 1991.10 vmunix: NFS server monkey02 0k というメッセージが表示されます。 49

10. UNIX MAGAZINE 1991年10月号

NUTSHE 乢ハンドフックス SC 翡 UN ー X 解説書の最高峰 米国で絶大な評価を得ている IJN Ⅸシステム解説書 O'ReillY@Associates 社の NIJTSHELL 八ンドプンクス翻訳版、 アスキーからいよいよ刊行 ! U ルⅨ、花 ram 面 UNIX ( プログラミング UNIX C プログラミング David A ℃ urry 著アスキー書籍編集部監訳 A5 判 328P 定価 2 , 500 円 ( 税込 ) ーシステムプログラマーのための上級プログラミング解説書 一般的な C 言語解説書からは得られない、ネットワーグ / プロセス間通信 / ジョブ制御など、 UN Ⅸの機能を十分に活かした高度なプログラミングについて、豊富な例をそえて解説。 UN Ⅸプログラマー必携の一冊。 (BSD/System V 対応 ) ・シグナルの処理・プログラムの実行・ジョブコントロール・プロセス間通イ ・ネットワーキング・ファイルシステム・その他のルーチンほか NUTSHELL 好評発売中 一三ロ 主な内容 ど U ⅣⅨ S m D•id A. 「′ y 著 アスキー書籍編集訳 HANDBOOKS UNIX システムチューニング system Mike Loukides 著砂原秀樹監訳 A5 判 416P 定価 3 , 200 円 ( 税込 ) Performance ーーシステム管理者必読のコンフィギュレーションテクニック lüning UN Ⅸシステムを快適に運用するためのチェックポイント、システムのパフォーマンス測定とそ の評価、コンフィギュレーションの具体的な方法までを詳細に解説。システム管理者待望の一冊。 ・システム性能概論・システムの資源・システム活動の監視・システムの負 荷平均・作業負荷の管理・ユーザーのための秘訣・メモリの性能・ページングとスワッピ ング・ディスクの性能・ネットワークの性能・ターミナルの性能・カーネルの再構成ほか 株式会社キー 〒 107 ー 24 東京都港区南青山 6 ー 11 ー 1 スリーエフ南青山ヒル株式会社アスキー書籍 / 雑誌営業部電話東京 ( 03 ) 386 ー 1977 資料請求 N085 UN Ⅸシステムチューニング 主な内容 砂第秀第火 ・ UN Ⅸオペレーティングシステムは、 UN Ⅸ System Labo 「 ato 「 ies コ nc. が開発し、ライセンスしています。