• ベストアンサー

;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

  • initコマンドで終了しない

    Solaris9で質問があります。 Solarisを終了させるときは、initやshutdownコマンドを使用するかと思うのですが、時々、initやshutdownコマンドを入力しても、コマンドは受け付けられるものの、サーバがシャットダウンしない(#プロンプトが表示された状態のまま)時があります。再起動の場合などは、そのままrebootと入力したりして、対応するのですが、どうして、コマンドが実行されないのでしょうか?

  • unixのreadコマンドで入力を指定時間待つというオプションはある?

    unix系のreadコマンドでプロンプトからの入力を待つ際に、 指定時間入力を待って、入力が無ければreadコマンド失敗、 となるようなオプションはあるのでしょうか? solarisのBシェルでスクリプトを書きます。 以上、よろしくお願いします。

  • Solaris系OSの性能の調べ方について

    Solaris系のOSに性能について2つ調べたいことがあります。 1つはCPU情報とHDD容量です。 これのCPU情報は使っているCPUと周波数が分かればよいのですが UNIX系のコマンドとしてcpuinfoで調べようとしたのですが そのようなコマンドは無いというエラーが出ました。 別に調べる方法などありましたら教えて下さい。 宜しくお願いします。 またSolaris系のOSで扱っているHDD容量の調べ方は dfコマンドでいいのですか?

  • Solaris上のNetscape の表示を外部プログラムからコントロール

    Solaris 上で,netscape と協調動作するプログラムを作っていて,困っています. solaris (その他UNIX系OSであれば同じだと思いますが.)上で動いているNetscape へ自分の作った外部プログラムからURLを指定して表示させることが出きるでしょうか.たとえば,Windowsでは,URLを指定し,IEを呼び出し,そのURLのページを表示させるシステムコールがありますね.これと似たような機能(必ずしもシステムコールでなくてもいいです.たとえばシェルコマンドでもいいです.)がUNIXにあるでしょうか.

  • Solaris 10 の日本語環境

    お世話になります。今までLINUX→fedoraと構築を経験してたの ですが、今度UNIXのSolarisも触ることになり、今検証&練習 しているのですが、SolarisをLINUXで言えばランレベル3 CUIで コマンドライン操作している際、入力は問題ありませんが コマンドオプションを間違った際などに出てくるエラー等が 文字化けしていて、何のことか分かりません。 英語が得意ではないので,REDHAT~fedoraのように 日本語化をしたいのですが、どうしたらよいものか 分かりません。中には、無理という文献もちょこちょこ 見ますが、LINUX fedoraで言えば、ランレベル3のときに kon・・・に匹敵するものはありますでしょうか。 また、LINUXの時には矢印キー↑で過去に打ったコマンドを 呼び出せますが、Solarisにはないのでしょうか。 backspaceも使えなくてdelキーなど、意外と違いがあり 四苦八苦しております。 よろしくお願い致します。

  • scanfのようなUNIXコマンドはあるでしょうか

    このカテゴリでよいのかわかりませんが、質問させて頂きます。 OSはHP-UX11.23を使用しています。 スクリプトを実行する際、一旦ストップしたい場所を 指定したいと思います。 その際、scanfのようなUNIXコマンドがあるでしょうか。 ctrl+cなどでは、指定した個所でストップできません。 scanfであれば、キー入力するまでストップできるし、 どのようなキーを入力しても、次の処理に移ることが 可能です。 決まったキーを入力しなければならない場合、間違える とそのスクリプトは終了してしまうと思うので、 scanfのようなUNIXコマンドを教えて頂ければ と思います。 よろしくお願いします。

  • DOSコマンド(Windows2000)について

    DOSコマンドで、時間基準で処理を一時中断(待ち状態) という事は可能なのでしょうか? UNIXであれば、 % sleep 30 とすれば30秒処理を中断してくれると思うのですが、 DOSコマンドですと、 > pause で、入力待ちになってしまいます。 DOSコマンドにてUNIXのような処理は行えるのでしょうか? ご回答お願い致します。

  • エクセル/マクロ Exit Subが実行されない

    エクセルマクロの質問です。エクセルのヴァージョンは2000です。 あるシートをコピーして新シートに任意の名前を付けるマクロを作っています。ユーザーフォームの中に一つのテキストボックス(新シートの名前入力用)と二つのコマンドボタンを設置し一つは実行ボタン、もう一つはキャンセルボタンとしました。 QNo.6367227でエラー処理に関する質問をさせていただきましたが、こちらは見事に解決していただきました。 今回の質問はExit Subに関する質問です。 If構文で、条件文1が真であればシートをコピーして名前を変更、フォームを閉じるという処理を目指しています。 If 条件 Then ~ 処理 Exit Sub という形を作って試してみたのですが、処理後にExit Subが実行されません。Exit Subの前にメッセージボックスを挿むとメッセージは表示されましたが、やはりExit Subにはたどり着けませんでした。 すごく初歩的な事で恥ずかしいのですが、Exit Subが実行されない理由と解決法をご教示いただけると助かります。よろしくお願いします。 Private Sub CommandButton1_Click() Dim NewSheetName As String NewSheetName = TextBox1.Value On Error Resume Next Sheets("Summary").Name = NewSheetName If Err.Number = 0 Then Sheets(NewSheetName).Copy before:=Sheets(NewSheetName) ActiveSheet.Name = "Summary" MsgBox ("Task Completed!") ExitSub Else MsgBox "Invalid name!" End If On Error GoTo 0 End Sub

  • shutdownコマンドが利きません

    solaris9 shutdownコマンドを入力しても落ちません。 #から shutdown -y -g0 -i5 (or -i6 or -i0) を入力すると、Beep音は発生するのですが、いつまでたっても状態は#のままです。 init も0,5,6とも同じです。 rebootコマンドは利くので、reboot→Openbootが上がってきたところをstop-aで止めて電源を落としています。 なにか良い解決策ございましたらご教示ください。

  • エクセルVBAのテキストボック、Exitイベント

    エクセルのVBAで簡単なデータ登録のマクロを作成しています。 フォームのテキストボックスに入力した値を、エクセルシートに展開する程度の機能です。 製品コードを必須にしており、製品コードが入っていない時はエラーメッセージを表示します。 製品コードが入力されていないときは、製品コードのテキストボックスにフォーカスがあたったままにしたく、ネットで調べてExitイベントに以下の処理を作成しました。 Private Sub mySeiCD_Exit(ByVal Cancel As MSForms.ReturnBoolean) Dim myMsgBoxValue As String If Len(mySeiCD.Value) = 0 Then myMsgBoxValue = MsgBox("製品コードは入力必須です。" ,vbOKOnly, "製品コード未入力") Cancel = True End If End Sub 製品コード未入力の際にフォーカスはそのままになりましたが、フォームを閉じることができなくなりました。 閉じるボタンを押しても、Exitイベントにひっかかてしまいます。 当然の動きと思いますが、回避する方法はありませんでしょうか? Exitイベントを使わずに、SetFocus を使った場合は、どうしても、次のテキストボックスにフォーカスが移動してしまいました。 以上、長くなりましたが、よろしくお願い致します。