exit(exit_code=0, suppress_save_prompt=False)
セッションにまだ保存されていない変更があった場合にのみ終了確認プロンプトが表示されます。 この関数は、ユーザがそのプロンプトで選択をするまで戻りません。 この関数がHoudini外(例えば、MPlayや非グラフィカルPythonシェル)からコールされると、そのダイアログが表示されず、 暗黙的にsuppress_save_prompt==Trueになります。
ユーザが終了を選択すると、この関数はPythonスクリプトの実行を確実に終了させるためのPythonSystemExit例外を引き起こします。 この方法により次のPythonステートメントは実行されず、Houdiniが実際のシャットダウンを実行するイベントをイベントキューに追加することができるので、 そのシャットダウンを実行するスレッドとは別のスレッドからhou.exit()をコールすることができます。
インタラクティブHoudini Pythonシェル内からsys.exit()をコールすると、そのメソッドはsuppress_save_prompt=Trueの設定でhou.exit()をコールします。 Houdini Pythonシェルは、sys.exit()で引き起こされるSystemExit例外を傍受して、hou.exit()をコールすることでそれを行なっています。 sys.exit()とhou.exit()はどちらともSystemExit例外を引き起こすので、Houdini Pythonシェルはhou._isExiting()をコールすることで、その2つの例外を区別します。
sys.exit()をインタラクティブHoudini Pythonシェル以外の場所、例えば非グラフィカルPythonシェルからコールしないようにしてください。 代わりに、hou.exit()をコールしてください。 hou.exit()をコールすると、Houdiniが安全にシャットダウンします。