これは 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番号を入力+Enter
:
Job Terminated でプロセスが終了する
3.プログラムで停止する方法
USER>zn "%SYS"
%SYS>do $SYSTEM.Process.Terminate(17456) // ^RESJOB ユーティリティと同じ。プロセスIDを指定して終了する
%SYS>
%SYS>do $SYSTEM.Process.Terminate() // 自分自身(現在の)プロセスを終了する場合