• ベストアンサー

;exitについて

initコマンドを使用する際などに、initコマンドの後に『;exit』を入力すると、 initの処理が早くなると聞きました。 例)#init 5;exit これは、本当なのでしょうか? 本当であれば、どういった動作を行うことで、処理が早くなっているのでしょうか? おそらくUNIX全般に適応しているコマンド(?)だと思うのですが・・・。 ちなみに、私はSolarisを使っています。 「聞いたことあるよ」程度の情報でもかまわないので、よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.1

> initコマンドを使用する際などに、initコマンドの後に『;exit』を入力すると、 > initの処理が早くなると聞きました。 > > 例)#init 5;exit > > これは、本当なのでしょうか? うそ。 コマンドとして、 "init 5 ; exit" を sh に入力すると、sh は ";" で区切られた それぞれのコマンドをパイプラインに入れ、左から順番に実行(つまり、セミコロンの 左側のパイプラインが終了するのを待って、右側のパイプラインを処理する)します。 つまり init のプロセス自体は、別のパイプラインがあるかどうかを知らないわけで、 だから、それによって init が早くなったり/遅くなったり、というのは無いです。 # と、信じます (^^;

tomo_t_21
質問者

お礼

早速のご回答、ありがとうございました。

その他の回答 (1)

  • terra5
  • ベストアンサー率34% (574/1662)
回答No.2

initはsystem V系列のunix特有のもので, BSD系のunixにはありません。 そもそもランレベルがありませんし。 で速度ですが,通常の場合はともかく、initの場合だともしかすると、いくらか速い可能性はあるかも知れません(^^; 実感できるほどの速度差があるとは思えませんが。 init自体は initプロセスへ新しいランレベルを通知して終了しますので、実際の動きは起動時から動いているinitプロセスが行うはずです。 その後にexitする暇があれば、shellのプロセスが一つ減る可能性が考えられ, プロセスが一つ減ると負荷が減り少しは速くなるのかも知れません。 が、exitが実行されるよりも先に initプロセスによるランレベルの変更が始まってしまうなら,意味が無いでしょう。 まあ、実用的にはどうでもいいような話に思えます(^^;;;

tomo_t_21
質問者

お礼

分かりやすい回答、ありがとうございます。

関連するQ&A