記事
· 13 hr 前 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               0         0 RUNW     66824
    2         WRTDMN               26       357 RUNW     18340
    3         GARCOL                0         0 RUNW     48172
    4         JRNDMN              156        25 RUNW     44180
    5         EXPDMN                0         0 RUNW     46292
    6 %SYS    %SYS.WorkQueueMgr133834     13242 SEMW     42112 //./nul
    7 %SYS    MONITOR           31238        78 EVTW     62572 //./nul
    8 %SYS    CLNDMN                0        21 RUNW     58484 //./nul
    9 %SYS    LMFMON             1587        80 EVTW     17168 //./nul
   10 %SYS    RECEIVE             795        97 HANGW    17212 //./nul
   11 USER    shell               362        37 READ     41016 |TRM|:|41016   // これを終了する場合
   12 %SYS    %SYS.WorkQueueMgr 77088      7396 EVTW      3848 //./nul
   13 %SYS    %SYS.SERVER           0        17 READ     48840 1972:
   14 %SYS    %SYS.TaskSuper     2073       135 EVTW     22480 //./nul
   15 %SYS    SYS.VSSWriter         0        14 RUNW      6884 //./nul
   16 %SYS    %SYS.Monitor.Co<5697596   2242094 EVTW     26840 //./nul
   17 %SYS    %SYS.WorkQueueMgr  4763       156 SEMW     39616 //./nul
   19 %SYS    %SYS.sqlcq.uEidd<133559      1338 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()        // 自分自身(現在の)プロセスを終了する場合
ディスカッション (0)0
続けるにはログインするか新規登録を行ってください