(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5997005
(24)【登録日】2016年9月2日
(45)【発行日】2016年9月21日
(54)【発明の名称】情報処理装置、プロセスの正常終了判定方法およびプログラム
(51)【国際特許分類】
G06F 11/07 20060101AFI20160908BHJP
【FI】
G06F11/07 151
G06F11/07 140E
【請求項の数】9
【全頁数】11
(21)【出願番号】特願2012-239396(P2012-239396)
(22)【出願日】2012年10月30日
(65)【公開番号】特開2014-89603(P2014-89603A)
(43)【公開日】2014年5月15日
【審査請求日】2015年10月26日
(73)【特許権者】
【識別番号】000104652
【氏名又は名称】キヤノン電子株式会社
(74)【代理人】
【識別番号】100076428
【弁理士】
【氏名又は名称】大塚 康徳
(74)【代理人】
【識別番号】100112508
【弁理士】
【氏名又は名称】高柳 司郎
(74)【代理人】
【識別番号】100115071
【弁理士】
【氏名又は名称】大塚 康弘
(74)【代理人】
【識別番号】100116894
【弁理士】
【氏名又は名称】木村 秀二
(74)【代理人】
【識別番号】100130409
【弁理士】
【氏名又は名称】下山 治
(74)【代理人】
【識別番号】100134175
【弁理士】
【氏名又は名称】永川 行光
(72)【発明者】
【氏名】萩原 泰志
【審査官】
多胡 滋
(56)【参考文献】
【文献】
特開平10−021096(JP,A)
【文献】
特開2004−164271(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/07
(57)【特許請求の範囲】
【請求項1】
予め指定されたプロセスが終了したときに、当該予め指定されたプロセスと関連した関連プロセスが稼働しているかどうかに基づいて、当該予め指定されたプロセスが正常に終了したかどうかを判定することを特徴とする情報処理装置。
【請求項2】
予め指定されたプロセスを監視するプロセス監視手段と、
前記予め指定されたプロセスと関連した関連プロセスを登録した関連リストを記憶する記憶手段と、
前記予め指定されたプロセスが終了したときに、前記関連リストに記憶されている前記関連プロセスが起動していれば前記予め指定されたプロセスが正常に終了したと判定し、前記関連リストに記憶されている前記関連プロセスが起動していなければ前記予め指定されたプロセスが正常に終了しなかったと判定する判定手段と
を有することを特徴とする情報処理装置。
【請求項3】
前記関連プロセスは、前記予め指定されたプロセスを終了させるプロセスであることを特徴とする請求項2に記載の情報処理装置。
【請求項4】
前記判定手段は、前記関連リストから前記関連プロセスのプロセス名を取得し、取得した当該プロセス名が、前記情報処理装置のオペレーティングシステムが管理しているプロセスリストに掲載されているかどうかを判定することで、前記予め指定されたプロセスが正常に終了したかどうかを判定することを特徴とする請求項2または3に記載の情報処理装置。
【請求項5】
前記判定手段は、前記関連リストに記憶されているすべての関連プロセスが起動していれば前記予め指定されたプロセスが正常に終了したと判定し、前記関連リストに記憶されているすべての関連プロセスが起動していなければ前記予め指定されたプロセスが正常に終了しなかったと判定することを特徴とする請求項2ないし4のいずれか1項に記載の情報処理装置。
【請求項6】
前記判定手段は、前記関連リストに記憶されている複数の関連プロセスのうち少なくとも1つの関連プロセスが起動していれば前記予め指定されたプロセスが正常に終了したと判定し、前記関連リストに記憶されている複数の関連プロセスのすべてが起動していなければ前記予め指定されたプロセスが正常に終了しなかったと判定することを特徴とする請求項2ないし4のいずれか1項に記載の情報処理装置。
【請求項7】
前記判定手段が前記予め指定されたプロセスが正常に終了しなかったと判定すると、プロセスの異常終了を通知する通知する通知手段をさらに有することを特徴とする請求項2ないし6のいずれか1項に記載の情報処理装置。
【請求項8】
予め指定されたプロセスを監視するプロセス監視するステップと、
前記予め指定されたプロセスが終了したときに、前記予め指定されたプロセスと関連した関連プロセスを登録した関連リストを使用し、前記関連リストに記憶されている前記関連プロセスが起動していれば前記予め指定されたプロセスが正常に終了したと判定し、前記関連リストに記憶されている前記関連プロセスが起動していなければ前記予め指定されたプロセスが正常に終了しなかったと判定するステップと
を有することを特徴とするプロセスの正常終了判定方法。
【請求項9】
予め指定されたプロセスを監視するプロセス監視手段と、
当該予め指定されたプロセスと関連した関連プロセスを登録した関連リストを記憶する記憶手段と、
前記予め指定されたプロセスが終了したときに、前記関連リストに記憶されている前記関連プロセスが起動していれば前記予め指定されたプロセスが正常に終了したと判定し、前記関連リストに記憶されている前記関連プロセスが起動していなければ前記予め指定されたプロセスが正常に終了しなかったと判定する判定手段と
して、コンピュータを機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プロセスが正常に終了したかどうかを判定する技術に関する。
【背景技術】
【0002】
パーソナルコンピュータなどの情報処理装置では数多くのプロセスが存在し、それらが独立にまたは相互に関係しながら動作している。ただし、各プロセスが同一の専門家によって作られたプロセスではないため、すべてのプロセスが同じルールで動作しているとは限らない。
【0003】
一方で、複数のプロセス間で問題が生じると、システムに重大な障害を発生させる可能性がある。特に独自のシステムをパーソナルコンピュータに導入する場合にはこのような問題が発生しやすい。特許文献1によれば、名前が指定された任意のプロセスを監視対象とし、監視プロセスの異常終了時に連動処理を振り分けてプロセス監視開始/終了期間の柔軟な設定を可能にしたプロセス監視システムが提案されている。具体的には、監視プロセス手段がプロセス監視開始部からの通知を受け取ると監視プロセス定義ファイルを読み込み、監視対象プロセスのプロセス名を取得する。プロセス名を基にプロセスIDをオペレーティングシステムのプロセス管理テーブルから検索し、監視対象プロセス群が異常終了した場合に検知できるように設定する。プロセスの異常終了を検知するとその終了コードを取得し、プロセス名、終了コードをキーに監視プロセス定義ファイルを検索し、対応する連動処理を検索、実行する。プロセス監視終了部からの通知を受けプロセス監視を停止する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2000−311099号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
一般に、プロセスは終了するときにリターンコードと呼ばれる値を出力する。そのリターンコードを事前に正常か異常か値で定義しておくことで、リターンコードからプロセスの終了処理が正しく行われたかどうかを判定できる。
【0006】
しかし、リターンコードだけでは、プロセスの停止処理が悪意あるユーザーによる意図的な停止処理なのか、処理軽減のための他のプロセスからの強制的に停止処理なのかを判定することはできない。またパーソナルコンピュータ上には、リターンコードを出力しないプロセスや、そのリターンコードの定義が不明なプロセスも多く存在する。よって、プロセスが正常に終了したのかどうかを判定することは難しい。特許文献1にもどのようにしてプロセスの異常終了を検知するかは記載されていない。
【0007】
そこで、本発明は、このような課題および他の課題のうち、少なくとも1つを解決することを目的とする。本発明は、たとえば、監視対象のプロセスの終了処理が行われたときに当該プロセスが正常に終了したかどうかを判定することを目的とする。なお、他の課題については明細書の全体を通して理解できよう。
【課題を解決するための手段】
【0008】
本発明によれば、たとえば、予め指定されたプロセスが終了したときに、当該予め指定されたプロセスと関連した関連プロセスが稼働しているかどうかに基づいて、当該予め指定されたプロセスが正常に終了したかどうかを判定することを特徴とする情報処理装置が提供される。
【0009】
また、本発明によれば、
予め指定されたプロセスを監視するプロセス監視手段と、
前記予め指定されたプロセスと関連した関連プロセスを登録した関連リストを記憶する記憶手段と、
前記予め指定されたプロセスが終了したときに、前記関連リストに記憶されている前記関連プロセスが起動していれば前記予め指定されたプロセスが正常に終了したと判定し、前記関連リストに記憶されている前記関連プロセスが起動していなければ前記予め指定されたプロセスが正常に終了しなかったと判定する判定手段と
を有することを特徴とする情報処理装置が提供される。
【発明の効果】
【0010】
本発明によれば、予め指定されたプロセスが終了したときに、当該予め指定されたプロセスと関連した関連プロセスが稼働しているかどうかに基づいて、当該予め指定されたプロセスが正常に終了したかどうかを判定することで、プロセスが正常に終了したかどうかを従来よりも正確に判定できるようになる。
【図面の簡単な説明】
【0011】
【
図1】プロセス監視システムの全体的構成を示すブロック図である。
【
図3】複数のプロセス間の相互関係の一例を示す図である。
【
図4】情報処理装置のハードウェア構成一例を示す図である。
【
図5】プロセスの終了判定方法を示すフローチャートである。
【発明を実施するための形態】
【0012】
図1は、本発明の一実施の形態に係るプロセス監視システム110の全体を説明したブロック図である。プロセス監視システム110は、パーソナルコンピュータ(情報処理装置)上で動作している。プロセス監視システム110は、監視対象として予め指定されたプロセス120と、予め指定されたプロセス120と関連した関連プロセスを含む関連プロセス群130との各動作を監視する。プロセス監視システム110では、パーソナルコンピュータで常時起動しており、監視対象となるプロセス120を監視している。プロセス監視システム110は、監視対象のプロセス120の終了を検知する終了検知部111と、プロセス120が正常に終了したかどうか判定する正常終了判定部112と、プロセス120が正常に終了しなかったことを通知する通知部113とを有している。
【0013】
終了検知部111は、監視対象のプロセス120を監視しており、監視対象のプロセス120の終了するときに発行する終了イベントを取得し、監視対象のプロセス120の終了を検知する。終了検知部111は、監視対象のプロセス120の終了を検知すると、監視対象のプロセス120が終了したことを示す終了情報を正常終了判定部112に通知する。終了情報には、監視対象のプロセス120のプロセス名やプロセスIDなど、監視対象のプロセス120を識別可能な識別情報が含まれている。このように、終了検知部111は、予め指定されたプロセス120を監視するプロセス監視手段として機能する。
【0014】
正常終了判定部112は、終了検知部111から終了情報を受信すると、関連プロセス群130の稼働起動状況を確認する。関連プロセス群130に属する1つ以上の関連プロセスのプロセス名などの識別情報は関連プロセスリスト140に登録されているものとする。関連プロセスリスト140は、予め指定されたプロセス120と関連した関連プロセスを登録した関連リストの一例である。関連プロセスリスト140は、ハードディスクドライブ、メモリなどの記憶手段に記憶されている。一方で、オペレーティングシステム(OS)150は、パーソナルコンピュータで動作しているすべてのプロセスを登録したプロセスリスト(以下、OSプロセスリスト160と称す。)を作成し、保持している。正常終了判定部112は、オペレーティングシステム150が管理しているOSプロセスリスト160を参照することで、関連プロセス群130が稼働しているかどうかを判定する。正常終了判定部112は、監視対象のプロセス120が終了したときに、関連プロセスリストに記憶されている関連プロセス群130が起動していれば監視対象のプロセス120が正常に終了したと判定する。また、正常終了判定部112は、関連プロセスリストに記憶されている関連プロセス群130が起動していなければ予め指定された監視対象のプロセスが正常に終了しなかったと判定する。
【0015】
監視対象のプロセス120は1つでもよいし、複数であってもよい。ただし、複数の監視対象のプロセス120が存在する場合、複数の監視対象のプロセス120のそれぞれごとに、相互に関係した関連プロセス群130を関連プロセスリストに記憶しておけばよい。
【0016】
図2は、関連プロセスリスト140の一例を示す図である。関連プロセスリスト140には、監視対象として予め指定されたプロセスのプロセス名と、予め指定されたプロセスと相互に関係した関連プロセスのプロセス名とが対応付けて記憶されている。この例では、プロセスAに対して、プロセスB,C,Dが対応付けて関連プロセスリスト140に登録されている。
【0017】
図3は、複数のプロセス間の相互関係の一例を示した図である。プロセスAとプロセスBが相互関係にある場合、プロセスAが起動状態(S301)に遷移すると、相互に関係したプロセスBは停止状態(S302)に遷移する。プロセスAが停止状態(S303)に遷移すると、プロセスBは起動状態(S304)に遷移する。このように、プロセスAが終了したときには、プロセスBが稼働している。よって、監視対象のプロセス120がプロセスAであれば、プロセスAが終了したときに、OSプロセスリストにプロセスBが掲載されていれば、プロセスAは正常に終了したと判定される。逆に、プロセスAが終了したときに、OSプロセスリストにプロセスBが掲載されていなければ、プロセスAは正常に終了しなかったと判定される。
【0018】
図4は、情報処理装置として適用可能なコンピュータ100のハードウェア構成例を示すブロック図である。CPU41は、ROM42やRAM43に格納されているコンピュータプログラムやデータを用いてコンピュータ全体の制御を行う。とりわけ、CPU41は、コンピュータプログラムを実行することでプロセス監視システム110として機能する。ROM42には、コンピュータ100の設定データや、ブートプログラムなどが格納されている。
【0019】
RAM43は、HDD(ハードディスクドライブ)44からロードされたコンピュータプログラムやデータ、通信インターフェース47を介して外部から受信したデータなどを一時的に記憶するためのエリアを有する。さらに、RAM43は、CPU41が各種の処理を実行する際に用いるワークエリアを有する。すなわち、RAM43は、各種のエリアを適宜提供することができる。
【0020】
HDD44には、オペレーティングシステム150やプロセス監視システム110に相当するプログラム、プロセス120や関連プロセス群130に相当するプログラムが記憶されている。また、関連プロセスリスト140や、監視対象として指定されたプロセスの情報もHDD44に記憶されているものとする。
【0021】
HDD44に保存されているコンピュータプログラムやデータは、CPU41による制御に従って適宜にRAM43にロードされ、CPU41による処理対象となる。
【0022】
入力装置45は、キーボードやマウスなどにより構成されており、本コンピュータの操作者は、この入力装置45を操作することで、各種の指示をCPU41に対して入力することができる。たとえば、CPU41は、入力装置45を通じて監視対象として指定されたプロセス120の情報を受け付けて、HDD44に記憶する。また、CPU41は、入力装置45を通じて、監視対象として指定されたプロセス120に関連した関連プロセスの情報も受け付けて、関連プロセスリスト140を作成し、HDD44に記憶してもよい。
【0023】
表示装置46は、CRTや液晶画面などにより構成されており、CPU41による処理結果を画像や文字などでもって表示することができる。たとえば、CPU41は、通知部113として機能することで、プロセス120が正常に終了しなかったことを通知するためのメッセージを表示装置46に表示させてもよい。
【0024】
通信インターフェース47は、様々なインターフェースで構成されている。通信インターフェース47は、たとえば、本コンピュータをネットワークに接続する為のネットワークインターフェース、外部周辺機器を接続するためのデバイスインターフェースを含む。
【0025】
なお、これらのコンピュータ100の構成については係る構成に限定されることはない。つまり、上述した機能を達成できる限りにおいて、コンピュータ100の構成は適宜に変更されてもよい。
【0026】
図5は、プロセス監視システム110が実行する正常終了判定方法の各ステップを示すフローチャートである。CPU41は、オペレーティングシステム150を起動し、さらにオペレーティングシステム150にしたがって各種のプロセスやプロセス監視システム110を起動する。プロセス監視システム110は、サービスプログラムとしてオペレーティングシステム150のブート時に自動的に起動されてもよいし、ユーザーの指示にしたがって起動されてもよい。
【0027】
S501で、CPU41は、監視対象として予め指定されているプロセス120の名称を特定する。監視対象として予め指定されているプロセス120の名称は、HDD44に予め記憶されており、CPU41は、その名称を読み出すことで、監視対象として予め指定されているプロセス120の名称を特定する。これにより、CPU41は、プロセス120の動作の監視を開始する。
【0028】
S502で、CPU41は、監視対象のプロセス120が起動して稼働中であるかどうかを判定する。たとえば、CPU41は、オペレーティングシステム150が管理しているOSプロセスリスト160を参照することで、プロセス120が稼働中かどうかを判定する。CPU41は、OSプロセスリスト160に監視対象のプロセス120の識別情報が掲載されていなければプロセス120が稼働中ではないと判定する。一方で、CPU41は、OSプロセスリスト160に監視対象のプロセス120の識別情報が掲載されていればプロセス120が稼働中である判定し、S503に進む。
【0029】
S503で、CPU41は、プロセス120が終了したかどうかを判定する。CPU41は、終了検知部111として機能することで、プロセス120の終了イベントを検知する。CPU41は、この終了イベントを検知していなければプロセス120が終了していないと判定し、終了イベントを検知したならばプロセス120が終了したと判定する。プロセス120が終了すると、CPU41は、プロセス120が終了したことを正常終了判定部112に通知し、S504に進む。
【0030】
S504で、CPU41は、正常終了判定部112として機能し、関連プロセスリスト140を参照し、プロセス120に関連した関連プロセス群130の識別情報を取得する。
【0031】
S505で、CPU41は、正常終了判定部112として機能し、オペレーティングシステム150が管理しているOSプロセスリスト160を参照する。
【0032】
S506で、CPU41は、正常終了判定部112として機能し、監視対象のプロセス120が正常に終了したかどうかを判定する。たとえば、CPU41は、オペレーティングシステム150が管理しているOSプロセスリスト160に関連プロセス群130の識別情報が掲載されているかどうかに基づいて、監視対象のプロセス120が正常に終了したかどうかを判定してもよい。オペレーティングシステム150が管理しているOSプロセスリスト160に関連プロセス群130の識別情報が掲載されていれば、関連プロセス群130が稼働していることを意味する。オペレーティングシステム150が管理しているOSプロセスリスト160に関連プロセス群130の識別情報が掲載されており、関連プロセス群130が稼働していれば、監視対象のプロセス120が正常に終了したことを意味する。そのため、S502に戻り、プロセス120の監視を継続する。一方で、オペレーティングシステム150が管理しているOSプロセスリスト160に関連プロセス群130の識別情報が掲載されておらず、関連プロセス群130が稼働していなければ、監視対象のプロセス120が正常に終了していない(異常終了した)ため、S507に進む。CPU41は、通知部113に監視対象のプロセス120が正常に終了しなかったことを通知する。
【0033】
S507で、CPU41は、通知部113として機能し、監視対象のプロセス120が正常に終了しなかったことを示すメッセージを表示装置46に出力させる。なお、CPU41は、通信インターフェース47を通じて、管理者や他のコンピュータに対して、当該通知を送信してもよい。また、CPU41は、コンピュータ100の全ての機能を停止してもよい。
【0034】
なお、プロセス120の正常終了判定条件は、たとえば、関連プロセス群130に属する複数のプロセスのうち所定数(たとえば1個、2個またはすべて)のプロセスが稼働してないことを条件としてもよい。
【0035】
監視対象のプロセス120は、基本的に、プロセス監視システム110が導入されているコンピュータ100に存在するが、関連プロセス群130は、コンピュータ100に存在していてもよいし、他のコンピュータ上に存在していてもよい。この場合、CPU41は、他のコンピュータに対して、関連プロセス群130が稼働しているかどうかを問い合わせることになる。
【0036】
以上説明したように本実施形態によれば、CPU41(正常終了判定部112)は、予め指定されたプロセス120が終了したときに、プロセス120と関連した関連プロセス群130が稼働しているかどうかに基づいて、プロセス120が正常に終了したかどうかを判定する。より具体的には、CPU41は、予め指定されたプロセス120が終了したときに、関連プロセスリスト140に記憶されている関連プロセス群130が起動していればプロセス120が正常に終了したと判定し、関連プロセス群130が起動していなければプロセス120が正常に終了しなかったと判定する。これは、予め指定されたプロセス120が正常に終了するときは、関連プロセス群130が常に稼働しているというプロセス間の相互関係を利用した判定方法である。たとえば、CPU41の処理を軽減するために、関連プロセス群130から強制的にプロセス120が停止されることがある。つまり、関連プロセス群130は予め指定されたプロセス120を終了させるプロセスであり、プロセス120の終了には関連プロセス群130が深く関与していることがある。このようなプロセス間の相互関係を利用することで、本発明は、プロセスが正常に終了したかどうかを従来よりも正確に判定できるようになる。たとえば、監視対象のプロセス120が、悪意あるユーザーによって意図的に停止されたときは、関連プロセス群130が稼働していない可能性がある。よって、プロセス間の相互関係を利用すれば、悪意あるユーザーによってプロセス120が停止されたのか、CPU41の処理を軽減するために、関連プロセス群130から強制的にプロセス120が停止されたのかを区別できるようになろう。
【0037】
また、本実施形態では、リターンコードを用いずにプロセス120が正常に終了したかどうかを判定できるため、リターンコードに頼った判定手法よりも誤判定が少なくなる。コンピュータ100には多数のプロセスが動作しており、その中にはリターンコードを返さないプロセスや定義不明のリターンコードを返すプロセスも存在する。よって、リターンコードに頼った判定手法では、このようなプロセスについて正常に終了したかどうかを正確に判定できない。一方で、本実施形態では、リターンコードを用いずにプロセス120が正常に終了したかどうかを判定できるため、従来よりも正確に判定できるといえよう。
【0038】
CPU41は、関連プロセスリスト140を使用して正常終了判定を実行してもよい。CPU41は、関連プロセスリスト140から関連プロセス群130のプロセス名を取得し、取得したプロセス名が、コンピュータ100のオペレーティングシステム150が管理しているOSプロセスリスト160に掲載されているかどうかを判定することで、予め指定されたプロセス120が正常に終了したかどうかを判定してもよい。OSは、稼働しているすべてのサービスやプロセスを管理するためにOSプロセスリスト160を作成して保持しているため、CPU41は、これを利用することで簡単に関連プロセス群130が稼働しているかどうかを判定できる。
【0039】
なお、CPU41は、関連プロセスリスト140に記憶されているすべての関連プロセスが起動していればプロセス120が正常に終了したと判定し、関連プロセスリスト140に記憶されているすべての関連プロセスが起動していなければ予め指定されたプロセス120が正常に終了しなかったと判定してもよい。あるいは、CPU41は、関連プロセスリスト140に記憶されている複数の関連プロセスのうち少なくとも1つの関連プロセスが起動していれば予め指定されたプロセス120が正常に終了したと判定し、関連プロセスリスト140に記憶されている複数の関連プロセスのすべてが起動していなければプロセス120が正常に終了しなかったと判定してもよい。このように、プロセス120と関連プロセス群130との相互関係の特徴に応じて、正常終了の判定条件を厳格にしてもよいし、緩やかにしてもよい。
【0040】
CPU41は、予め指定されたプロセス120が正常に終了しなかったと判定すると、プロセスの異常終了を通知する通知する通知手段として表示装置46や通信インターフェース47を機能させてもよい。これによりユーザーや管理者はプロセス120が正常に終了しなかったことを早期に把握することが可能となる。
【0041】
なお、本実施形態では、関連プロセス群130が複数の関連プロセスを含むものとして説明してきたが、もちろん、関連プロセス群130に含まれる関連プロセスは1つであってもよい。関連プロセス群130という名称は、単なる説明の便宜上の呼称にすぎない。