UNIX・Linux の nice コマンドって何がナイスなんや?

お家騒動でほんのり賑わっていた LPIC の勉強をしている時に思ったこと。

nice および renice というコマンドを使うと、プロセスの優先度を変更できる。実行速度が重要ではないプロセスは優先度を落として、CPU の使用率を下げようというモノ。この行為自体は Windows の「タスクマネージャ」なんかでもやれたりする。

しかし、プロセスの優先度を変更することの何がナイスだというのか?

調べてみると、こういうことだった。

  • (他の利用者のために)わざわざ優先度を下げるなんてナイス!
  • 要はCPUを譲ってあげる親切度
  • プラスのナイス値で優先度が下がっていくのも、ナイスを奨励するためだったとか

nice という英単語は、「魅力的な」「快適な」とかいう意味の他に、「親切な」「優しい」という意味もある。プロセスの優先度を下げ、他のプロセスに配慮するなんて、あなたは CPU に対してナイス (親切) だね、という意味のようだ。

Linux コマンドは、こうやって由来を覚えればしっくり来るが、いちいちコマンド名が短くされていたり、今回のように変にひねりをいれていたりして覚えづらい。元々がコマンドの寄せ集めだから、それぞれのコマンドで思想や構造がちょっとずつ違い、なかなか扱いづらい。