甘いもん好きおやじのブログ

日常の面白いことを描きます。

知らないこといっぱい rmコマンド編

コンピュータ関係の仕事してます。
linuxベースのOSでシステム開発してます。
知ってるつもりで使ってるコマンドが、実は中で何やってるか知らなかったりして、
何で?ってなってから、調べなおしたりして、合点が行ったりしています。

rmコマンドっていうのは、ファイルを削除するコマンドです。
「rm ファイル名」って入力するとファイルが消えて、そのファイルが確保してた
ディスク容量が空きます。
ディスクがいっぱいになった時に、消していいファイルを調べて、このrmコマンドで削除します。

そのrmコマンドで、oracleのlistenerログを削除したときの話。
開発サーバのoracleのlistenerログが肥大化し、ディスクを圧迫していました。
syslogにもディスクいっぱいだよっていうメッセージが出てます。
えいや!とrmでlistenerログを削除しました。
ディスクが空くかと思いきや、、、
空きません!
syslogからもメッセージが出続けてます。

ネット先生で調べたところ、oracleのlistenerプロセスがlitenerログを掴んだまんま
離していない状態で、rmしたのが原因だということが分かりました。
プロセスが掴んだままだとrmしても、領域が解放されずディスク容量が空かないのです。

lsコマンドで確認したらファイルはありません。
プロセスが掴んだままだから、エントリから消えただけで実体は消えてないんです。
サーバの再起動をすれば、listenrプロセスが問題のファイルを手放して、領域開放されるのでしょう。
または、listenrプロセスを一度再起動するか、ですね。

うーん、OSの基本的な動きを理解していれば、安直にrmなんかしなかったでしょう。
まず、listenerプロセスを落としてから、listenerログを削除すべきでした。
自分が実行しようとしてるコマンドが内部でどんな動きをしているか?
意識して実行すべきだと思いました。
こうした意図しない動きをすることだってあるんですね。