投稿者

Product Support at InterSystems Japan
記事 Megumi Kakechi · 7月 15 4m read

IRISのプロセス(処理)を停止させる方法

これは InterSystems FAQ サイトの記事です。
IRISのプロセスを終了したい場合、管理ポータルから行う方法と、ターミナルからユーティリティやコマンドを使用して行う方法があります。

こちらのトピックでは、以下の3つの方法で停止する方法をご紹介します。

【プロセスの停止方法】
1.管理ポータルから停止する方法2.ユーティリティーで停止する方法(RESJOB、JOBEXAM)3.プログラムで停止する方法


【注意】
IRIS外から(Windowsならタスクマネージャーなど)、プロセスの終了は絶対に行わないでください。

IRIS外からプロセス終了してしまうと、IRIS内部ではプロセスの削除を検知できなかったりすることで、IRISの動作が不安定になったり、システム全体がハングする危険性がありますので、ご注意ください。

外部から停止の例外が一つだけあります。
$ZF コマンドによって起動された子プロセスが、何らかの問題で応答を返さなかった場合、$ZF コマンドを実行した親プロセスはそのまま残り続けます。
そのような親プロセスを終了したい場合、通常の上記1~3の方法では停止できません。
その際は、先に外部から子プロセスを停止する必要があります。子プロセスを特定するためには、以下の方法があります。

例:Windowsの場合
1. process explorer(マイクロソフト製)
2. PowerShell コマンド
   PS>wmic Process where '(parentprocessid=10188)' get 'processid,executablepath'


では、以下に通常のプロセスを停止する方法をご紹介します。
 

1.管理ポータルから停止する方法

システムオペレーション > プロセス
よりプロセス一覧を表示し、終了したいプロセスの 詳細 リンクをクリックし、詳細ページを開きます。

 

終了ボタンをクリックすると、モーダルダイアログが開くので、終了ボタンを押してプロセスを終了します。

 


 

2.ユーティリティーで停止する方法(RESJOB、JOBEXAM)

管理者権限でターミナルにログインし、ユーティリティを実行します。

★RESJOB

USER>zn"%SYS"%SYS>do^RESJOB
Force a process to quit InterSystems IRIS
 
Process ID (? for status report): 56528// 終了したいプロセスIDを入力+Enter で終了する
Process ID (? for status report):         // Enter で抜ける( ? を入れるとプロセス一覧が表示される)%SYS>

★JOBEXAM

%SYS>do^JOBEXAM
                IRIS for Windows (x86-64) 2025.1 (Build 225_1U)
 Job# NSpace  Routine        Commands   Globals State      PID Current device
    1         CONTROL               00 RUNW     668242         WRTDMN               26357 RUNW     183403         GARCOL                00 RUNW     481724         JRNDMN              15625 RUNW     441805         EXPDMN                00 RUNW     462926%SYS%SYS.WorkQueueMgr133834     13242 SEMW     42112//./nul7%SYS    MONITOR           3123878 EVTW     62572//./nul8%SYS    CLNDMN                021 RUNW     58484//./nul9%SYS    LMFMON             158780 EVTW     17168//./nul10%SYS    RECEIVE             79597 HANGW    17212//./nul11 USER    shell               36237READ41016 |TRM|:|41016// これを終了する場合12%SYS%SYS.WorkQueueMgr770887396 EVTW      3848//./nul13%SYS%SYS.SERVER017READ488401972:
   14%SYS%SYS.TaskSuper2073135 EVTW     22480//./nul15%SYS    SYS.VSSWriter         014 RUNW      6884//./nul16%SYS%SYS.Monitor.Co<56975962242094 EVTW     26840//./nul17%SYS%SYS.WorkQueueMgr4763156 SEMW     39616//./nul19%SYS%SYS.sqlcq.uEidd<1335591338 RUN      37884 |TRM|:|37884
(N)ext,(P)rev,(G)oto,(E)xamine,(T)erminate,(S)uspend,(R)esume,(Q)uit =>       // T 押下(Terminate)
Terminate: Enter Job # or "P" followed by the PID: P41016                     // P+プロセスID または Job番号を入力+EnterJob Terminated でプロセスが終了する


3.プログラムで停止する方法

USER>zn"%SYS"%SYS>do$SYSTEM.Process.Terminate(17456)   // ^RESJOB ユーティリティと同じ。プロセスIDを指定して終了する%SYS>
 
%SYS>do$SYSTEM.Process.Terminate()        // 自分自身(現在の)プロセスを終了する場合