(57)【特許請求の範囲】
【請求項１】
必須の機能を提供する主要なプログラムが起動可能か否かを判定する主要プログラム起動判定手段と、
前記主要なプログラム以外のその他のプログラムが起動可能か否かを判定するその他プログラム起動判定手段と、
前記その他のプログラムが依存する記憶媒体を初期化する依存媒体初期化手段と、
通常起動か復旧起動かを判定する起動方式判定手段と、
前記その他のプログラムの中から起動させるプログラムを選択する起動プログラム選択手段とを備え、
前記主要プログラム起動判定手段によって起動可能と判定され、且つ前記その他プログラム起動判定手段によって起動不可能と判定された場合、該起動不可能と判定されたその他のプログラムに対して前記依存媒体初期化手段を実行し、
前記起動方式判定手段によって復旧起動と判定され、且つ前記主要プログラム起動判定手段によって起動可能と判定された場合、前記起動プログラム選択手段によって選択されたプログラムに対して前記その他プログラム起動判定手段を実行し、該判定結果が起動不可能と判定されたプログラムに対して前記依存媒体初期化手段を実行することを特徴とする画像形成装置。
【請求項２】
復旧起動状態であることを通知する復旧起動状態通知手段と、復旧起動状態から通常起動状態に変更する起動状態変更手段とを設け、
前記起動方式判定手段によって復旧起動と判定された場合、前記復旧起動状態通知手段を実行し、前記起動状態変更手段の実行要求が入力された場合、前記起動状態変更手段を実行することを特徴とする請求項１記載の画像形成装置。
【請求項３】
前記起動プログラム選択手段によって選択されなかったプログラムの情報を登録して保持する起動未選択プログラム情報保持手段を設け、
次回起動時に前記起動未選択プログラム情報保持手段によって情報が保持されていないプログラムのみを起動することを特徴とする請求項１記載の画像形成装置。
【請求項４】
前記起動方式判定手段によって復旧起動と判定された場合、前記起動未選択プログラム情報保持手段によって保持されている情報を消去することを特徴とする請求項３記載の画像形成装置。
【請求項５】
前記依存媒体初期化手段によって初期化実行後、再度前記その他プログラム起動判定手段を実行し、依然として起動不可能と判定されたプログラムの情報を登録して保持する起動不可能プログラム情報保持手段を設け、
次回起動時に前記起動不可能プログラム情報保持手段によって情報が保持された起動不可能なプログラムは起動しないことを特徴とする請求項１乃至４のいずれか一項に記載の画像形成装置。
【請求項６】
前記起動方式判定手段によって復旧起動と判定された場合、前記起動不可能プログラム情報保持手段によって保持されている情報を消去することを特徴とする請求項５記載の画像形成装置。
【請求項７】
必須の機能を提供する主要なプログラムが起動可能か否かを判定する主要プログラム起動判定工程と、前記主要なプログラム以外のその他のプログラムが起動可能か否かを判定するその他プログラム起動判定工程と、前記その他のプログラムが依存する記憶媒体を初期化する依存媒体初期化工程と、通常起動か復旧起動かを判定する起動方式判定工程と、前記その他のプログラムの中から起動させるプログラムを選択する起動プログラム選択工程と、前記主要プログラム起動判定工程によって起動可能と判定され、且つ前記その他プログラム起動判定工程によって起動不可能と判定された場合、該起動不可能と判定されたその他のプログラムに対して前記依存媒体初期化工程を実行する工程と、前記起動方式判定工程によって復旧起動と判定され、且つ前記主要プログラム起動判定工程によって起動可能と判定された場合、前記起動プログラム選択工程によって選択されたプログラムに対して前記その他プログラム起動判定工程を実行し、該判定結果が起動不可能と判定されたプログラムに対して前記依存媒体初期化工程を実行する工程とを備えることを特徴とする画像形成装置の障害復旧方法。
【請求項８】
コンピュータに、必須の機能を提供する主要なプログラムが起動可能か否かを判定する主要プログラム起動判定手順と、前記主要なプログラム以外のその他のプログラムが起動可能か否かを判定するその他プログラム起動判定手順と、前記その他のプログラムが依存する記憶媒体を初期化する依存媒体初期化手順と、通常起動か復旧起動かを判定する起動方式判定手順と、前記その他のプログラムの中から起動させるプログラムを選択する起動プログラム選択手順と、前記主要プログラム起動判定手順によって起動可能と判定され、且つ前記その他プログラム起動判定手順によって起動不可能と判定された場合、該起動不可能と判定されたその他のプログラムに対して前記依存媒体初期化手順を実行する手順と、前記起動方式判定手順によって復旧起動と判定され、且つ前記主要プログラム起動判定手順によって起動可能と判定された場合、前記起動プログラム選択手順によって選択されたプログラムに対して前記その他プログラム起動判定手順を実行し、該判定結果が起動不可能と判定されたプログラムに対して前記依存媒体初期化手順を実行する手順とを実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、プリンタ，コピー，ファクシミリ，スキャナを含む複数種類の機能を果たす画像形成装置と画像形成装置の障害復旧方法とプログラムに関する。
【背景技術】
【０００２】
近年、プリンタ，コピー，ファクシミリ，スキャナなどの各装置の機能を１つの筐体内に収納した画像形成装置（以下「複合機」とする）が一般的に知られている。
この複合機は、１つの筐体内に表示部，印刷部及び撮像部などの装置を設けると共に、それらの各部を使用してプリンタ，コピー，ファクシミリ及びスキャナ装置にそれぞれ対応する機能を実現するアプリケーションソフトウェア（「アプリケーションプログラム」ともいう、以下「プログラム」と略称する）を記憶し、各プログラムの実行の切り替えによって画像形成装置をプリンタ，コピー，ファクシミリ，又はスキャナとして動作させるものである。
このような複合機では、メモリやハードディスクドライブ（ＨＤＤ）などのハードウェア資源に障害が発生することによってプログラムが起動不可能になった場合、ハードウェア資源の障害に影響のあるプログラムの全機能を停止しなければならないという問題があった。
そこで従来、障害の発生したハードウェア資源を使用しない範囲でサービスを提供するようにした画像形成装置（例えば、特許文献１参照）があった。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
しかしながら、上述のような従来の画像形成装置では、障害の発生したハードウェア資源の初期化（例：ＨＤＤのフォーマットなど）を行うことで障害から復旧できる可能性があるにも関わらず、ユーザ（あるいはサービスマン）が障害の原因を取り除く（例：障害が発生したハードウェア資源の交換など）まで、限定されたサービスしか使用できないという問題があった。
この発明は上記の点に鑑みてなされたものであり、プログラムが起動できなかった場合にそのプログラムが依存するハードウェア資源を初期化することによって起動できるようにすることを目的とする。
【課題を解決するための手段】
【０００４】
この発明は上記の目的を達成するため、必須の機能を提供する主要なプログラムが起動可能か否かを判定（「判断」ともいう）する主要プログラム起動判定手段と、上記主要なプログラム以外のその他のプログラムが起動可能か否かを判定するその他プログラム起動判定手段と、上記その他のプログラムが依存する記憶媒体を初期化する依存媒体初期化手段と、通常起動か復旧起動かを判定する起動方式判定手段と、上記その他のプログラムの中から起動させるプログラムを選択する起動プログラム選択手段とを備え、上記主要プログラム起動判定手段によって起動可能と判定され、且つ上記その他プログラム起動判定手段によって起動不可能と判定された場合、その起動不可能と判定されたその他のプログラムに対して上記依存媒体初期化手段を実行し、上記起動方式判定手段によって復旧起動と判定され、且つ前記主要プログラム起動判定手段によって起動可能と判定された場合、上記起動プログラム選択手段によって選択されたプログラムに対して上記その他プログラム起動判定手段を実行し、その判定結果が起動不可能と判定されたプログラムに対して上記依存媒体初期化手段を実行する画像形成装置を提供する。
【０００５】
また、復旧起動状態であることを通知する復旧起動状態通知手段と、復旧起動状態から通常起動状態に変更する起動状態変更手段を設け、上記起動方式判定手段によって復旧起動と判定された場合、上記復旧起動状態通知手段を実行し、上記起動状態変更手段の実行要求が入力された場合、上記起動状態変更手段を実行するようにするとよい。
【０００６】
また、上記起動プログラム選択手段によって選択されなかったプログラムの情報を登録して保持する起動未選択プログラム情報保持手段を設け、次回起動時に上記起動未選択プログラム情報保持手段によって情報が保持されていないプログラムのみを起動するようにするとよい。
さらに、上記起動方式判定手段によって復旧起動と判定された場合、上記起動未選択プログラム情報保持手段によって保持されている情報を消去するようにするとよい。
また、上記依存媒体初期化手段によって初期化実行後、再度上記その他プログラム起動判定手段を実行し、依然として起動不可能と判定されたプログラムの情報を登録して保持する起動不可能プログラム情報保持手段を設け、次回起動時に上記起動不可能プログラム情報保持手段によって情報が保持された起動不可能なプログラムは起動しないようにするとよい。
さらに、上記起動方式判定手段によって復旧起動と判定された場合、上記起動不可能プログラム情報保持手段によって保持されている情報を消去するようにするとよい。
【０００７】
また、必須の機能を提供する主要なプログラムが起動可能か否かを判定する主要プログラム起動判定工程と、上記主要なプログラム以外のその他のプログラムが起動可能か否かを判定するその他プログラム起動判定工程と、上記その他のプログラムが依存する記憶媒体を初期化する依存媒体初期化工程と、通常起動か復旧起動かを判定する起動方式判定工程と、上記その他のプログラムの中から起動させるプログラムを選択する起動プログラム選択工程と、上記主要プログラム起動判定工程によって起動可能と判定され、且つ上記その他プログラム起動判定工程によって起動不可能と判定された場合、その起動不可能と判定されたその他のプログラムに対して上記依存媒体初期化工程を実行する工程と、上記起動方式判定工程によって復旧起動と判定され、且つ前記主要プログラム起動判定工程によって起動可能と判定された場合、上記起動プログラム選択工程によって選択されたプログラムに対して上記その他プログラム起動判定工程を実行し、その判定結果が起動不可能と判定されたプログラムに対して上記依存媒体初期化工程を実行する工程とを備える画像形成装置の障害復旧方法を提供する。
【０００８】
また、コンピュータに、必須の機能を提供する主要なプログラムが起動可能か否かを判定する主要プログラム起動判定手順と、上記主要なプログラム以外のその他のプログラムが起動可能か否かを判定するその他プログラム起動判定手順と、上記その他のプログラムが依存する記憶媒体を初期化する依存媒体初期化手順と、通常起動か復旧起動かを判定する起動方式判定手順と、前記その他のプログラムの中から起動させるプログラムを選択する起動プログラム選択手順と、上記主要プログラム起動判定手順によって起動可能と判定され、且つ上記その他プログラム起動判定手順によって起動不可能と判定された場合、その起動不可能と判定されたその他のプログラムに対して上記依存媒体初期化手順を実行する手順と、上記起動方式判定手順によって復旧起動と判定され、且つ上記主要プログラム起動判定手順によって起動可能と判定された場合、上記起動プログラム選択手順によって選択されたプログラムに対して上記その他プログラム起動判定手順を実行し、その判定結果が起動不可能と判定されたプログラムに対して上記依存媒体初期化手順を実行する手順とを実行させるためのプログラムを提供する。
【発明の効果】
【０００９】
この発明による画像形成装置と画像形成装置の障害復旧方法は、プログラムが起動できなかった場合にそのプログラムが依存するハードウェア資源を初期化することによって起動できるようにすることができる。
また、この発明によるプログラムは、コンピュータに、プログラムが起動できなかった場合にそのプログラムが依存するハードウェア資源を初期化することによって起動できるようにするための機能を実現させることができる。
【図面の簡単な説明】
【００１０】
【図１】この発明の画像形成装置の実施例である複合機のハードウェア構成を示すブロック図である。
【図２】図１のコントローラ１上で実行されるソフトウェア群の構成図である。
【図３】この実施例の複合機における電源投入時の処理を示すフローチャート図である。
【図４】その他のアプリとＨＤＤとの依存関係を示すテーブルデータの一例を示す説明図である。
【図５】その他のアプリ毎にＨＤＤの初期化を行ったか否かを示すテーブルデータの一例を示す説明図である。
【００１１】
【図６】この実施例の複合機における電源投入時の他の処理を示すフローチャート図である。
【図７】この実施例の複合機における電源投入時のさらに他の処理を示すフローチャート図である。
【図８】その他のプログラムについて起動プログラムとして選択されているか否かを示すテーブルデータの一例を示す説明図である。
【図９】その他のプログラムについて起動不可能か否かを示すテーブルデータの一例を示す説明図である。
【発明を実施するための形態】
【００１２】
以下、この発明を実施するための形態を図面に基づいて具体的に説明する。
〔実施例〕
図１は、この発明の画像形成装置の実施例である複合機のハードウェア構成を示すブロック図である。
この複合機は、コントローラ１上のＡＳＩＣ２を介してＣＰＵ３，ＨＤＤ４，ＲＯＭ５，ＲＡＭ６がデータのやり取りが可能に接続されている。
ＲＯＭ５には、図２に記載するソフトウェア群を記憶しており、その各ソフトウェア（プログラム）をＲＡＭ６上に展開してＣＰＵ３が実行し、ＡＳＩＣ２を介して、操作部７，スキャナ部８，ＦＡＸ部９，エンジン部１０との通信制御を行うことにより、プリンタ，コピー，ファクシミリ及びスキャナ装置にそれぞれ対応する機能を実現し、この複合機をプリンタ，コピー，ファクシミリ，又はスキャナとして動作させるものである。
【００１３】
そして、この複合機は、ＣＰＵ３がＲＡＭ６を作業領域としてＲＯＭ５に記憶されたこの発明に係るプログラムを実行して、この発明に係る画像形成装置の障害復旧方法の処理を実施し、この発明に係る各手段の機能を果たすことにより、電源投入時、複合機に必須の機能を提供する主要なプログラムの他のプログラムが実行できなかった場合、その実行できなかったプログラムが実行できるように試みるため、その実行できなかったプログラムが依存するハードウェア資源を初期化する処理とその他の処理を含む障害復旧処理を行うことができる。
【００１４】
図２は、図１のコントローラ１上で実行されるソフトウェア群２０の構成図である。
コントローラ１上でバイオス（ＢＩＯＳ）プログラム２１がオペレーティングシステム（ＯＳ）プログラム２２を起動し、ＯＳ２２上では、コピーアプリケーションプログラム（「コピーアプリ」と略称する）２３，プリンタアプリケーションプログラム（「プリンタアプリ」と略称する）２４，スキャナアプリケーションプログラム（「スキャナアプリ」と略称する）２５，ＦＡＸアプリケーションプログラム（「ＦＡＸアプリ」と略称する）２６を含む各種のプログラムからの処理要求を解釈してハードウェア資源の獲得要求を発生させるコントロールサービスと、１または複数のハードウェア資源の管理を行い、コントロールサービスからの獲得要求を調停するシステムリソースマネージャ（ＳＲＭ）プログラム３０が動作する。
【００１５】
コントロールサービスプログラムは、複数のサービスモジュールプログラムから形成され、ＳＣＳ（システムコントロールサービス）プログラム３６と、エンジンコントロールサービス（ＥＣＳ）プログラム３１と、メモリコントロールサービス（ＭＣＳ）プログラム３２と、オペレーションパネルコントロールサービス（ＯＣＳ）プログラム３３と、ファックスコントロールサービス（ＦＣＳ）プログラム３４と、ネットワークコントロールサービス（ＮＣＳ）プログラム３５とから構成される。
この実施例では、図中主要アプリケーション群にまとめた各プログラムである、コピーアプリ２３，ＳＲＭ３０，ＥＣＳ３１，ＭＣＳ３２，ＯＣＳ３３，ＦＣＳ３４，ＮＣＳ３５，ＳＣＳ３６は、この複合機における必須の機能を提供する主要なプログラムとして設定されており、その設定情報はＲＯＭ５に記憶されており、ＣＰＵ３が参照可能である。また、主要なプログラム以外のその他のプログラムとして、プリンタアプリ２４，スキャナアプリ２５，ＦＡＸアプリ２６が設定されており、その設定情報はＲＯＭ５に記憶されており、ＣＰＵ３が参照可能である。
【００１６】
次に、この複合機における電源投入時の処理について説明する。
図３は、この実施例の複合機における電源投入時の処理を示すフローチャート図である。
この実施例の複合機の電源投入時、ステップ（図中「Ｓ」で示す）１で、ＣＰＵ３はＢＩＯＳ２１の処理により、特定の操作で電源オンになったか否かを判定する（「起動方式判定処理」に相当する）。この判定で、特定の操作で電源オンになったと判定した場合はステップ２へ進み、特定の操作で電源オンになったのではないと判定した場合はステップ７へ進む。
【００１７】
例えば、電源ボタンとこの複合機の主要なプログラムの１つとして設定されているコピーアプリ２３によるコピー機能の実行を要求するコピーボタンとの両方の押下された場合を特定の操作で電源オンと設定した場合、電源ボタンとコピーボタンとの両方の押下が行われて電源オンになったか否かを判定し、特定の操作で電源オンになったと判定した場合はステップ２へ進み、特定の操作で電源オンになったのではないと判定した場合はステップ７へ進む。
上記特定の操作では、所定の時間内であれば電源ボタンとコピーボタンの押下タイミングに差があってもよいものとする。
ステップ２では、ＣＰＵ３はＢＩＯＳ２１の処理により、ＲＡＭ６上へＯＳ２２を展開して実行し、ＯＳ２２の処理による制御に移行したら、ステップ３へ進む。
上記ＢＩＯＳ２１によるＲＡＭ６上へＯＳ２２の展開とＯＳ２２へ制御を移す処理をＯＳ２２の起動とする。
【００１８】
ステップ３では、ＣＰＵ３はＯＳ２２の処理により、この複合機において主要なプログラムとして設定されている、図２に示した２３，３０〜３６の各プログラムを順次起動させ、主要アプリ（主要なプログラム）が全て起動可能か否かを判定する（「主要アプリケーション起動判定処理」に相当する）。この判定で、主要アプリが全て起動可能ならステップ４へ進み、主要アプリが全て起動可能でなければ（いずれかの主要アプリが起動不能なら）、ステップ８へ進む。
この判定では、ＣＰＵ３はＯＳ２２の処理により、２３，３０〜３６の各プログラムに対して実行を要求した後、その各プログラムから一定時間内に応答があった場合は、主要アプリ（主要なプログラム）が起動可能と判定してステップ４へ進み、実行を要求したプログラムから一定時間内に応答がなかった場合は、主要アプリ（主要なプログラム）が起動不可能と判定してステップ８へ進む。
【００１９】
ステップ４では、ＣＰＵ３はＳＣＳ３６の処理により、その他のプログラムとして設定されている、図２に示したプリンタアプリ２４，スキャナアプリ２５，ＦＡＸアプリ２６の全てについて、起動可能か否かを順次判定する（「その他アプリケーション起動判定処理」に相当する）。この判定で、その他のアプリが全て起動可能ならステップ５へ進み、その他のアプリが全て起動可能でなければ（いずれかのその他のアプリが起動不能なら）、ステップ１０へ進む。
ステップ４の判定において、起動の可否を判定するアプリの順序は、ＲＯＭ５上に予め保存しておいた、図４に示すような各アプリケーションと記憶媒体との依存関係を示したテーブルを参照することで決定し、この実施例では起動可否判定を、１．プリンタ，２．スキャナ，３．ＦＡＸの順に行う。
【００２０】
ステップ５では、ＣＰＵ３はＳＣＳ３６の処理により、その他アプリケーション毎のハードウェア資源の初期化の有無を示すテーブルデータ内の各初期化フラグをクリアし、ステップ６へ進む。
一方、ステップ１０では、ＣＰＵ３はＳＣＳ３６の処理により、復旧処理として、まず、起動不可能と判定されたアプリケーションがハードウェア資源である特定の記憶媒体に依存しているか否かを判定する。
この判定では、ＲＯＭ５に予め記憶されている、各アプリケーションと記憶媒体との依存関係を示したテーブルを参照することで判定する。
【００２１】
このテーブルは、図４に示すように、例えば、プリンタアプリ２４，スキャナアプリ２５，ＦＡＸアプリ２６の各アプリケーションと、ハードディスク装置（ＨＤＤ）４との依存関係を示しており、「０」のとき依存関係はなく、「１」のときは依存関係にあることを示している。例えば、プリンタアプリ２４については「１」なので、ＨＤＤ４との依存関係があることを示している。
このステップ１０の判定では、起動不可能と判定されたアプリと依存関係にある記憶媒体が存在する場合は、ステップ１１へ進み、起動不可能と判定されたアプリと依存関係にある記憶媒体が存在しない場合は、ステップ５へ進む。
【００２２】
ステップ１０で、起動不可能と判定されたアプリと依存関係にある記憶媒体が存在しない場合は、記憶媒体の初期化による復旧は不可能であることとし、ステップ５で、ＣＰＵ３はＳＣＳ３６の処理により、その他アプリケーション毎のハードウェア資源の初期化の有無を示すテーブルデータ内の各初期化フラグをクリアし、ステップ６へ進む。また、初期化済みであれば記憶媒体の初期化による復旧は不可能であるとして、初期化フラグをクリアして、ステップ６へ進む。
ステップ１１では、ＣＰＵ３はＳＣＳ３６の処理により、起動不可能と判定されたアプリと依存関係にある記憶媒体が存在し、その記憶媒体が初期化済みか否かを判定する。
この判定で、初期化済みと判定したら、ステップ５へ進み、初期化済みではないと判定したら、ステップ１２へ進む。
【００２３】
ステップ１２では、ＣＰＵ３はＳＣＳ３６の処理により、依存している記憶媒体が初期化されていない場合は、依存関係にある記憶媒体の初期化を行い、初期化フラグをセットし、ステップ６へ進む。
ステップ６では、図５のテーブルに初期化フラグ「１」がセットされていた場合、全アプリケーションの起動確認が完了していても、ステップ４へ戻り、図５の初期化フラグ「１」がセットされているアプリケーションに対して再度処理を実行し、全初期化フラグが「０」にクリアされている場合は、この処理を終了する。
【００２４】
例えば、プリンタアプリ２４を例とすると、ステップ４でプリンタアプリ２４が起動不可能と判定された場合は、プリンタアプリ２４は図４に示すようにＨＤＤ４に依存しているため、ステップ１０で記憶媒体に依存していると判定し、ステップ１１でプリンタアプリ２４についてＨＤＤ４を初期化しているか否かを判定し、初期化していないと判定した場合は、ステップ１２で、ＨＤＤ４を初期化し、図５に示したテーブルのプリンタアプリ２４のＨＤＤ初期化フラグを「１」にする。
その後、図４に示したテーブルに記載されたプリンタアプリ２４，スキャナアプリ２５，ＦＡＸアプリ２６の全ての起動確認が完了しても、図５に示したテーブルのプリンタアプリ２４のＨＤＤ初期化フラグが「１」にセットされているため、再度プリンタアプリ２４の起動確認を行う流れとなる。
【００２５】
また、このときのＨＤＤ４の初期化は、プリンタアプリ２４が使用するＨＤＤ４のパーティションの論理フォーマットとし、その他のアプリケーションについては再度起動確認を行う必要はない。
さらに、プリンタアプリ２４とＦＡＸアプリ２６の両者が起動不可能と判定された場合を例とすると、図４に示すテーブルからプリンタアプリ２４はＨＤＤ４に依存しているため、まず、ステップ１２でプリンタアプリ２４が使用するＨＤＤ４のパーティションを初期化し、図５に示すテーブルのプリンタアプリ２４のＨＤＤ初期化フラグを「１」にする。
その後、スキャナアプリ２５がステップ４で起動確認された後、ＦＡＸアプリ２６の起動可否判定に移る。
【００２６】
ここで、図４に示すようにＦＡＸアプリ２６もＨＤＤ４に依存しているため、ステップ１２でＦＡＸアプリ２６が使用するＨＤＤ４のパーティションを初期化し、図５に示すテーブルのＦＡＸアプリ２６のＨＤＤ初期化フラグを「１」にする。
ここまででプリンタアプリ２４，スキャナアプリ２５，ＦＡＸアプリ２６の全アプリの起動確認が完了したが、図５に示すプリンタアプリ２４とＦＡＸアプリ２６のＨＤＤ初期化フラグが「１」になっているため、ステップ４へ戻ることとなる。
ステップ４では、図５に示すテーブルの初期化フラグが「１」になっているアプリケーションに対して順に再度起動可否判定を行う。
例えば、図５に示すテーブルに基づいて、プリンタアプリ２４，ＦＡＸアプリ２６の順に行うものとする。
【００２７】
ステップ４で起動可能と判定された場合は、ステップ５で初期化フラグを「０」にクリアし、起動不可能と判定された場合も、ステップ１１で初期化フラグが「１」となっているため、ステップ５で初期化フラグが「０」にクリアされる。
その結果、ステップ６で、全てのアプリケーションの起動確認が完了し、また初期化フラグも全て「０」にクリアされることとなるので、この処理を終了する。
なお、図４，図５に示す各テーブルは、共にＨＤＤ４との依存関係と初期化済みフラグのみに簡略化したものだが、他の記憶媒体に対する依存関係と初期化済みフラグも追加可能とする。
【００２８】
一方、ステップ７では、通常の起動処理として、ＣＰＵ３はＢＩＯＳ２１の処理により、ＲＡＭ６上へＯＳ２２を展開して実行し、ＯＳ２２が動作してＯＳ２２の処理による制御に移行した後、ＣＰＵ３はＯＳ２２の処理により、この複合機の主要なプログラムとその他のプログラムとを順次起動し、この処理を終了する。
また、ステップ８では、ＣＰＵ３はＯＳ２２の処理により、操作部７に複合機が起動不可能である旨のメッセージを表示し、ステップ９へ進み、ＣＰＵ３はＯＳ２２の処理により、複合機の動作を停止し、この処理を終了する。
このようにして、この実施例の複合機は、主要な機能を実現するプログラム以外のプリンタアプリ２４，スキャナアプリ２５，ＦＡＸアプリ２６の各プログラムのいずれかが起動できなかった障害が発生した場合、その起動できなかったアプリが依存する記憶媒体を初期化することにより障害復旧できた場合に、ユーザに対する利用可能なサービスの制限を回避することができる。
【００２９】
次に、ユーザが特定の操作を行うことで障害の原因となったハードウェア資源を初期化することも可能だが、ユーザは障害の原因となったハードウェアが何か分からないため、全てのプログラムの起動確認を行い、障害の要因となったハードウェア資源を調査する必要が生じる。
そのため、特定のプログラムのみ復旧したいユーザにとっては無駄な遅延が発生するという問題がある。
また、例えば、誤って特定の操作を実行してしまい復旧起動した場合、起動プログラムの選択によって通常起動よりも起動時間が長くかかることや、誤って記憶媒体の初期化を実行してしまう恐れがある。
そこで、次に上述のような不具合を解消する処理を含むこの実施例の複合機における電源投入時の処理について説明する。
【００３０】
図６は、この実施例の複合機における電源投入時の他の処理を示すフローチャート図である。
この処理では、複合機の電源投入時、ステップ（図中「Ｓ」で示す）２１で、ＣＰＵ３はＢＩＯＳ２１の処理により、特定の操作で電源オンになったか否かを判定する（「起動方式判定処理」に相当する）。この判定で、特定の操作で電源オンになったと判定した場合はステップ２２へ進み、特定の操作で電源オンになったのではないと判定した場合はステップ２９へ進む。
上記判定で特定の操作で電源オンになったと判定した場合、操作部７に復旧モードで起動していること（復旧起動状態であること）を表示してユーザに通知する。
【００３１】
例えば、電源ボタンとこの複合機の主要なプログラムの１つとして設定されているコピーアプリ２３によるコピー機能の実行を要求するコピーボタンとの両方の押下された場合を特定の操作で電源オンと設定した場合、電源ボタンとコピーボタンとの両方の押下が行われて電源オンになったか否かを判定し、特定の操作で電源オンになったと判定した場合はステップ２２へ進み、特定の操作で電源オンになったのではないと判定した場合はステップ２９へ進む。
上記特定の操作では、所定の時間内であれば電源ボタンとコピーボタンの押下タイミングに差があってもよいものとする。
【００３２】
ステップ２２では、操作部７から通常起動にする指示入力があったか否かを判定する。すなわち、この判定では、復旧モード（復旧起動状態）から通常起動状態に変更する実行入力がされたか否かを判定している。
ステップ２２の判定で、通常起動にする指示入力があれば、ステップ２９へ進み、通常起動にする指示入力がなければ、ステップ２３へ進む。
ステップ２３では、ＣＰＵ３はＢＩＯＳ２１の処理により、ＲＡＭ６上へＯＳ２２を展開して実行し、ＯＳ２２の処理による制御に移行したら、ステップ２４へ進む。
上記ＢＩＯＳ２１によるＲＡＭ６上へＯＳ２２の展開とＯＳ２２へ制御を移す処理をＯＳ２２の起動とする。
【００３３】
ステップ２４では、ＣＰＵ３はＯＳ２２の処理により、この複合機において主要なプログラムとして設定されている、図２に示した２３，３０〜３６の各プログラムを順次起動させ、主要アプリ（主要なプログラム）が全て起動可能か否かを判定する（「主要アプリケーション起動判定処理」に相当する）。この判定で、主要アプリが全て起動可能ならステップ２５へ進み、主要アプリが全て起動可能でなければ（いずれかの主要アプリが起動不能なら）、ステップ３０へ進む。
この判定では、ＣＰＵ３はＯＳ２２の処理により、２３，３０〜３６の各プログラムに対して実行を要求した後、その各プログラムから一定時間内に応答があった場合は、主要アプリ（主要なプログラム）が起動可能と判定してステップ２５へ進み、実行を要求したプログラムから一定時間内に応答がなかった場合は、主要アプリ（主要なプログラム）が起動不可能と判定してステップ３０へ進む。
【００３４】
ステップ２５では、図２に示したプリンタアプリ２４，スキャナアプリ２５，ＦＡＸアプリ２６のその他のプログラムの中から起動アプリ（ユーザからの起動を希望するプログラム）の選択入力を操作部７から受付け、ステップ２６へ進む。
なお、この処理では、図示を省略したが、ステップ２５による起動アプリ選択の有無を判定し、起動アプリ選択があったらステップ２６の処理を実行し、起動アプリ選択が無かったら、図３に示したステップ４のその他アプリケーション起動判定処理を実行し、主要なプログラム以外のその他のプログラムについて起動の可否を判定するようにしても良い。
【００３５】
ステップ２６では、ＣＰＵ３はＳＣＳ３６の処理により、その他のプログラムとして設定されている、図２に示したプリンタアプリ２４，スキャナアプリ２５，ＦＡＸアプリ２６の中から、上記選択入力された起動アプリについてのみ、起動可能か否かを順次判定する（「選択アプリケーション起動判定処理」に相当する）。この判定で、選択された起動アプリが全て起動可能ならステップ２７へ進み、選択された起動アプリが全て起動可能でなければ（いずれかの選択アプリが起動不能なら）、ステップ３２へ進む。
ステップ２６の判定において、起動の可否を判定するアプリの順序は、ＲＯＭ５上に予め保存しておいた、図４に示すような各アプリケーションと記憶媒体との依存関係を示したテーブルを参照することで決定し、この実施例では起動可否判定を、１．プリンタ，２．スキャナ，３．ＦＡＸの順に行う。
【００３６】
ステップ２６の判定において、起動の可否を判定するアプリの順序は、ＲＯＭ５上に予め保存しておいた、図４に示したような各アプリケーションと記憶媒体との依存関係を示したテーブルを参照し、そのテーブル内の登録アプリの中から上記選択されたアプリを選択順に実施すると良い。
この処理では、その他のアプリ全てが選択された場合を説明する。例えば、起動可否判定を、１．プリンタ，２．スキャナ，３．ＦＡＸの順に行う。
なお、選択入力されたアプリが、１．プリンタ，２．ＦＡＸと登録された場合、起動可否判定を、プリンタについて実施し、その後、スキャナについては実施せずにＦＡＸについて実施する。
【００３７】
この選択入力されたアプリの情報は、不揮発性メモリに、例えば、ＨＤＤ４，ＲＯＭ５にテーブル形式で登録して保持し、その情報を参照して起動の可否を判定すると良い。
また、選択入力されたアプリの情報を、ＲＡＭ６が不揮発性メモリならばＲＡＭ６に保持するようにしてもよい。
ステップ２７では、ＣＰＵ３はＳＣＳ３６の処理により、その他アプリケーション毎のハードウェア資源の初期化の有無を示すテーブルデータ内の各初期化フラグをクリアし、ステップ２８へ進む。
一方、ステップ３２では、ＣＰＵ３はＳＣＳ３６の処理により、復旧処理として、まず、起動不可能と判定されたアプリケーションがハードウェア資源である特定の記憶媒体に依存しているか否かを判定する。
この判定では、ＲＯＭ５に予め記憶されている、各アプリケーションと記憶媒体との依存関係を示したテーブルを参照することで判定する。
【００３８】
このテーブルは、図４に示したように、例えば、プリンタアプリ２４，スキャナアプリ２５，ＦＡＸアプリ２６の各アプリケーションと、ハードディスク装置（ＨＤＤ）４との依存関係を示しており、「０」のとき依存関係はなく、「１」のときは依存関係にあることを示している。例えば、プリンタアプリ２４については「１」なので、ＨＤＤとの依存関係があることを示している。
このステップ３２の判定で、起動不可能と判定されたアプリと依存関係にある記憶媒体が存在する場合は、ステップ３３へ進み、起動不可能と判定されたアプリと依存関係にある記憶媒体が存在しない場合は、ステップ２７へ進む。
【００３９】
ステップ３２の判定で、起動不可能と判定されたアプリと依存関係にある記憶媒体が存在しない場合は、記憶媒体の初期化による復旧は不可能であることとし、ステップ２７で、ＣＰＵ３はＳＣＳ３６の処理により、その他アプリケーション毎のハードウェア資源の初期化の有無を示すテーブルデータ内の各初期化フラグをクリア（消去）し、ステップ２８へ進む。また、初期化済みであれば記憶媒体の初期化による復旧は不可能であるとして、初期化フラグをクリアして、ステップ２８へ進む。
ステップ３３では、ＣＰＵ３はＳＣＳ３６の処理により、起動不可能と判定されたアプリと依存関係にある記憶媒体が存在し、その記憶媒体が初期化済みか否かを判定する。
この判定で、初期化済みと判定したら、ステップ２７へ進み、初期化済みではないと判定したら、ステップ３４へ進む。
【００４０】
ステップ３４では、ＣＰＵ３はＳＣＳ３６の処理により、依存している記憶媒体が初期化されていない場合は、依存関係にある記憶媒体の初期化を行い、初期化フラグをセットし、ステップ２８へ進む。
ステップ２８では、図５のテーブルに初期化フラグ「１」がセットされていた場合、全選択アプリの起動確認が完了していても、ステップ２６へ戻り、図５の初期化フラグ「１」がセットされているアプリケーションに対して再度処理を実行し、全初期化フラグが「０」にクリアされている場合は、この処理を終了する。
【００４１】
例えば、選択されたアプリがプリンタアプリ２４の場合を例とすると、ステップ２６でプリンタアプリ２４が起動不可能と判定された場合は、プリンタアプリ２４は図４に示すようにＨＤＤ４に依存しているため、ステップ３２で記憶媒体に依存していると判定し、ステップ３３でプリンタアプリ２４についてＨＤＤ４を初期化しているか否かを判定し、初期化していないと判定した場合は、ステップ３４で、ＨＤＤ４を初期化し、図５に示したテーブルのプリンタアプリ２４のＨＤＤ初期化フラグを「１」にする。
その後、他の選択アプリの全ての起動確認が完了しても、図５に示したテーブルのプリンタアプリ２４のＨＤＤ初期化フラグが「１」にセットされているため、再度プリンタアプリ２４の起動確認を行う流れとなる。
【００４２】
また、このときのＨＤＤ４の初期化は、プリンタアプリ２４が使用するＨＤＤ４のパーティションの論理フォーマットとし、その他のアプリケーションについては再度起動確認を行う必要はない。
さらに、プリンタアプリ２４とＦＡＸアプリ２６の両者が起動不可能と判定された場合を例とすると、図４に示したテーブルからプリンタアプリ２４はＨＤＤ４に依存しているため、まず、ステップ３４でプリンタアプリ２４が使用するＨＤＤ４のパーティションを初期化し、図５に示したテーブルのプリンタアプリ２４のＨＤＤ初期化フラグを「１」にする。
その後、スキャナアプリ２５がステップ２６で起動確認された後、ＦＡＸアプリ２６の起動可否判定に移る。
【００４３】
ここで、図４に示したようにＦＡＸアプリ２６もＨＤＤ４に依存しているため、ステップ３４でＦＡＸアプリ２６が使用するＨＤＤ４のパーティションを初期化し、図５に示したテーブルのＦＡＸアプリ２６のＨＤＤ初期化フラグを「１」にする。
ここまでで起動選択されたプリンタアプリ２４，スキャナアプリ２５，ＦＡＸアプリ２６の全アプリの起動確認が完了したが、図５に示したプリンタアプリ２４とＦＡＸアプリ２６のＨＤＤ初期化フラグが「１」になっているため、ステップ２６へ戻ることとなる。
ステップ２６では、図５に示したテーブルの初期化フラグが「１」になっているアプリケーションに対して順に再度起動可否判定を行う。
例えば、図５に示したテーブルに基づいて、プリンタアプリ２４，ＦＡＸアプリ２６の順に行うものとする。
【００４４】
ステップ２６で起動可能と判定された場合は、ステップ２７で初期化フラグを「０」にクリアし、起動不可能と判定された場合も、ステップ３３で初期化フラグが「１」となっているため、ステップ２７で初期化フラグが「０」にクリアされる。
その結果、ステップ２８で、全起動選択アプリケーションの起動確認が完了し、また初期化フラグも全て「０」にクリアされることとなるので、この処理を終了する。
一方、ステップ２９では、通常の起動処理として、ＣＰＵ３はＢＩＯＳ２１の処理により、ＲＡＭ６上へＯＳ２２を展開して実行し、ＯＳ２２が動作してＯＳ２２の処理による制御に移行した後、ＣＰＵ３はＯＳ２２の処理により、この複合機の主要なプログラムとその他のプログラムとの全アプリを順次起動し、この処理を終了する。
また、ステップ３０では、ＣＰＵ３はＯＳ２２の処理により、操作部７に複合機が起動不可能である旨のメッセージを表示し、ステップ３１へ進み、ＣＰＵ３はＯＳ２２の処理により、複合機の動作を停止し、この処理を終了する。
【００４５】
このようにして、ユーザが起動させたいプログラムのみについて起動可否を判定することにより、障害復旧処理においてユーザが不要と判定したプログラムの起動可否確認に要する時間を短縮することができる。
また、ユーザが誤って復旧起動してしまった際に、起動プログラムの選択を行う必要が無く通常起動に戻すことができるので、起動確認に要する時間の短縮と共に、記憶媒体の初期化の誤実行を回避することができる。
【００４６】
次に、上述の処理において、初期化選択しなかった記憶媒体によって次回起動時に通常起動できない可能性がある。
また、初期化未選択のアプリケーションが登録されている場合、記憶媒体の交換によって復旧した後も通常起動では起動させることができない可能性もある。
さらに、起動選択されていたアプリケーションであっても、記憶媒体の初期化によって起動可能な状態に復旧できない場合、次回起動時に通常起動できない可能性がある。
さらにまた、起動不可能なアプリケーションが登録されている場合、記憶媒体の交換によって復旧した後も通常起動では起動させることができない可能性がある。
そこで、次に上述のような不具合を解消する処理を含むこの実施例の複合機における電源投入時の処理について説明する。
【００４７】
図７は、この実施例の複合機における電源投入時のさらに他の処理を示すフローチャート図である。
この処理では、複合機の電源投入時、ステップ（図中「Ｓ」で示す）４１で、ＣＰＵ３はＢＩＯＳ２１の処理により、特定の操作で電源オンになったか否かを判定する（「起動方式判定処理」に相当する）。この判定で、特定の操作で電源オンになったと判定した場合はステップ４２へ進み、特定の操作で電源オンになったのではないと判定した場合はステップ５０へ進む。
上記判定で特定の操作で電源オンになったと判定した場合、操作部７に復旧モードで起動していること（復旧起動状態であること）を表示してユーザに通知する。
【００４８】
例えば、電源ボタンとこの複合機の主要なプログラムの１つとして設定されているコピーアプリ２３によるコピー機能の実行を要求するコピーボタンとの両方の押下された場合を特定の操作で電源オンと設定した場合、電源ボタンとコピーボタンとの両方の押下が行われて電源オンになったか否かを判定し、特定の操作で電源オンになったと判定した場合はステップ４２へ進み、特定の操作で電源オンになったのではないと判定した場合はステップ５０へ進む。
上記特定の操作では、所定の時間内であれば電源ボタンとコピーボタンの押下タイミングに差があってもよいものとする。
【００４９】
ステップ４２では、起動登録情報初期化処理で、起動未選択プログラム情報を含むアプリケーション起動選択情報と起動不可能プログラム情報を含むアプリケーション起動可否情報をクリア（消去）し、ステップ４３へ進む。
ステップ４３では、操作部７から通常起動にする指示入力があったか否かを判定する。すなわち、この判定では、復旧モード（復旧起動状態）から通常起動状態に変更する実行入力がされたか否かを判定している。
ステップ４３の判定で、通常起動にする指示入力があれば、ステップ５０へ進み、通常起動にする指示入力がなければ、ステップ４４へ進む。
ステップ４４では、ＣＰＵ３はＢＩＯＳ２１の処理により、ＲＡＭ６上へＯＳ２２を展開して実行し、ＯＳ２２の処理による制御に移行したら、ステップ４５へ進む。
上記ＢＩＯＳ２１によるＲＡＭ６上へＯＳ２２の展開とＯＳ２２へ制御を移す処理をＯＳ２２の起動とする。
【００５０】
ステップ４５では、ＣＰＵ３はＯＳ２２の処理により、この複合機において主要なプログラムとして設定されている、図２に示した２３，３０〜３６の各プログラムを順次起動させ、主要アプリ（主要なプログラム）が全て起動可能か否かを判定する（「主要アプリケーション起動判定処理」に相当する）。この判定で、主要アプリが全て起動可能ならステップ４６へ進み、主要アプリが全て起動可能でなければ（いずれかの主要アプリが起動不能なら）、ステップ５３へ進む。
この判定では、ＣＰＵ３はＯＳ２２の処理により、図２に示した２３，３０〜３６の各プログラムに対して実行を要求した後、その各プログラムから一定時間内に応答があった場合は、主要アプリ（主要なプログラム）が起動可能と判定してステップ４６へ進み、実行を要求したプログラムから一定時間内に応答がなかった場合は、主要アプリ（主要なプログラム）が起動不可能と判定してステップ５３へ進む。
【００５１】
ステップ４６では、図２に示したプリンタアプリ２４，スキャナアプリ２５，ＦＡＸアプリ２６のその他のプログラムの中から起動アプリ（ユーザからの起動を希望するプログラム）の選択入力を操作部７から受付け、選択入力された起動アプリ情報（起動が選択されたプログラムの情報）と、選択入力されなかった起動未選択アプリの情報（起動未選択プログラム情報）とを登録して保持し、ステップ４７へ進む。
なお、ステップ４６で起動アプリ選択が無かったら、図３に示したステップ４のその他アプリケーション起動判定処理を実行し、主要なプログラム以外のその他のプログラムについて起動の可否を判定するようにしても良い。
【００５２】
上記起動アプリと起動未選択アプリの情報は、図８に示すようなテーブルを不揮発性メモリ、例えば、ＨＤＤ４，ＲＯＭ５，ＲＡＭ６に用意し、選択入力されたアプリケーションは「１」のフラグを、起動選択されなかったアプリケーションは「０」のフラグを記録することによって保持する。
図８に示したテーブルでは、プリンタアプリ２４とＦＡＸアプリ２６が起動選択されていることを示している。
【００５３】
ステップ４７では、ＣＰＵ３はＳＣＳ３６の処理により、その他のプログラムとして設定されている、図２に示したプリンタアプリ２４，スキャナアプリ２５，ＦＡＸアプリ２６の中から、上記選択入力された起動アプリについてのみ、起動可能か否かを順次判定する（「選択アプリケーション起動判定処理」に相当する）。この判定で、選択された起動アプリが全て起動可能ならステップ４８へ進み、選択された起動アプリが全て起動可能でなければ（いずれかの選択アプリが起動不能なら）、ステップ５５へ進む。
ステップ４７の判定において、起動の可否を判定するアプリの順序は、ＲＯＭ５上に予め保存しておいた、図４に示すような各アプリケーションと記憶媒体との依存関係を示したテーブルを参照することで決定し、この実施例では起動可否判定を、１．プリンタ，２．スキャナ，３．ＦＡＸの順に行う。
【００５４】
ステップ４７の判定において、起動の可否を判定するアプリの順序は、ＲＯＭ５上に予め保存しておいた、図４に示したような各アプリケーションと記憶媒体との依存関係を示したテーブルを参照し、そのテーブル内の登録アプリの中から上記選択されたアプリを選択順に実施すると良い。
この処理では、その他のアプリ全てが選択された場合を説明する。例えば、起動可否判定を、１．プリンタ，２．スキャナ，３．ＦＡＸの順に行う。
なお、選択入力されたアプリが、１．プリンタ，２．ＦＡＸと登録された場合、起動可否判定を、プリンタについて実施し、その後、スキャナについては実施せずにＦＡＸについて実施する。
【００５５】
この選択入力されたアプリの情報は、不揮発性メモリに、例えば、ＨＤＤ４，ＲＯＭ５にテーブル形式で登録して保持し、その情報を参照して起動の可否を判定すると良い。
また、選択入力されたアプリの情報を、ＲＡＭ６が不揮発性メモリならばＲＡＭ６に保持するようにしてもよい。
ステップ４８では、ＣＰＵ３はＳＣＳ３６の処理により、
その他アプリケーション毎のハードウェア資源の初期化の有無を示すテーブルデータ内に初期化フラグがセットされている場合は起動不可能と登録し、各初期化フラグをクリアし、ステップ４９へ進む。
一方、ステップ５５では、ＣＰＵ３はＳＣＳ３６の処理により、復旧処理として、まず、起動不可能と判定されたアプリケーションがハードウェア資源である特定の記憶媒体に依存しているか否かを判定する。
この判定では、ＲＯＭ５に予め記憶されている、各アプリケーションと記憶媒体との依存関係を示したテーブルを参照することで判定する。
【００５６】
このテーブルは、図４に示したように、例えば、プリンタアプリ２４，スキャナアプリ２５，ＦＡＸアプリ２６の各アプリケーションと、ハードディスク装置（ＨＤＤ）４との依存関係を示しており、「０」のとき依存関係はなく、「１」のときは依存関係にあることを示している。例えば、プリンタアプリについては「１」なので、ＨＤＤとの依存関係があることを示している。
このステップ５５の判定で、起動不可能と判定されたアプリと依存関係にある記憶媒体が存在する場合は、ステップ５６へ進み、起動不可能と判定されたアプリと依存関係にある記憶媒体が存在しない場合は、ステップ４８へ進む。
【００５７】
ステップ５５の判定で、起動不可能と判定されたアプリと依存関係にある記憶媒体が存在しない場合は、記憶媒体の初期化による復旧は不可能であることとし、ステップ４８で、ＣＰＵ３はＳＣＳ３６の処理により、その他アプリケーション毎のハードウェア資源の初期化の有無を示すテーブルデータ内の各初期化フラグがセットされている場合は起動不可能と登録してフラグをクリア（消去）し、ステップ４９へ進む。また、初期化済みであれば記憶媒体の初期化による復旧は不可能であるとして、起動不可能と登録して初期化フラグをクリアして、ステップ４９へ進む。
ステップ５６では、ＣＰＵ３はＳＣＳ３６の処理により、起動不可能と判定されたアプリと依存関係にある記憶媒体が存在し、その記憶媒体が初期化済みか否かを判定する。
この判定で、初期化済みと判定したら、ステップ４８へ進み、初期化済みではないと判定したら、ステップ５７へ進む。
【００５８】
ステップ５７では、ＣＰＵ３はＳＣＳ３６の処理により、依存している記憶媒体が初期化されていない場合は、依存関係にある記憶媒体の初期化を行い、初期化フラグをセットし、ステップ４９へ進む。
ステップ４９では、図５のテーブルに初期化フラグ「１」がセットされていた場合、全選択アプリの起動確認が完了していても、ステップ４７へ戻り、図５の初期化フラグ「１」がセットされているアプリケーションに対して再度処理を実行し、全初期化フラグが「０」にクリアされている場合は、この処理を終了する。
【００５９】
例えば、選択されたアプリがプリンタアプリ２４の場合を例とすると、ステップ４７でプリンタアプリ２４が起動不可能と判定された場合は、プリンタアプリ２４は図４に示すようにＨＤＤ４に依存しているため、ステップ５５で記憶媒体に依存していると判定し、ステップ５６でプリンタアプリ２４についてＨＤＤ４を初期化しているか否かを判定し、初期化していないと判定した場合は、ステップ５７で、ＨＤＤ４を初期化し、図５に示したテーブルのプリンタアプリ２４のＨＤＤ初期化フラグを「１」にする。
その後、他の選択アプリの全ての起動確認が完了しても、図５に示したテーブルのプリンタアプリ２４のＨＤＤ初期化フラグが「１」にセットされているため、再度プリンタアプリ２４の起動確認を行う流れとなる。
【００６０】
また、このときのＨＤＤ４の初期化は、プリンタアプリ２４が使用するＨＤＤ４のパーティションの論理フォーマットとし、その他のアプリケーションについては再度起動確認を行う必要はない。
さらに、プリンタアプリ２４とＦＡＸアプリ２６の両者が起動不可能と判定された場合を例とすると、図４に示したテーブルからプリンタアプリ２４はＨＤＤ４に依存しているため、まず、ステップ５７でプリンタアプリ２４が使用するＨＤＤ４のパーティションを初期化し、図５に示したテーブルのプリンタアプリ２４のＨＤＤ初期化フラグを「１」にする。
その後、スキャナアプリ２５がステップ４７で起動確認された後、ＦＡＸアプリ２６の起動可否判定に移る。
【００６１】
ここで、図４に示したようにＦＡＸアプリ２６もＨＤＤ４に依存しているため、ステップ５７でＦＡＸアプリ２６が使用するＨＤＤ４のパーティションを初期化し、図５に示したテーブルのＦＡＸアプリ２６のＨＤＤ初期化フラグを「１」にする。
ここまでで起動選択されたプリンタアプリ２４，スキャナアプリ２５，ＦＡＸアプリ２６の全アプリの起動確認が完了したが、図５に示したプリンタアプリ２４とＦＡＸアプリ２６のＨＤＤ初期化フラグが「１」になっているため、ステップ４７へ戻ることとなる。
ステップ４７では、図５に示したテーブルの初期化フラグが「１」になっているアプリケーションに対して順に再度起動可否判定を行う。
例えば、図５に示したテーブルに基づいて、プリンタアプリ２４，ＦＡＸアプリ２６の順に行うものとする。
【００６２】
ステップ４７で起動可能と判定された場合は、ステップ４８で初期化フラグを「０」にクリアし、起動不可能と判定された場合も、初期化フラグが「１」となっているため、ステップ５５の判断で起動媒体依存否とされ、ステップ４８へ進んで初期化フラグが「０」にクリアされる。
その結果、ステップ４９で、全起動選択アプリケーションの起動確認が完了し、また初期化フラグも全て「０」にクリアされることとなるので、この処理を終了する。
一方、ステップ５０では、図８と図９のテーブルを参照し、起動選択されていないアプリケーション（図８の例ではスキャナアプリ２５）もしくは起動不可能と登録されたアプリケーション（図９の例ではＦＡＸアプリ２６）の有無を判断し、あった場合は、ステップ５１で起動選択されているアプリかつ起動不可能以外のアプリのみを起動（図８，図９の例ではプリンタアプリ２４のみ起動）し、この処理を終了する。
【００６３】
また、ステップ５０で、起動選択されていないアプリケーションもしくは起動不可能と登録されたアプリケーションがなかった場合は、ステップ５２で全アプリを起動し、この処理を終了する。
すなわち、通常の起動処理として、ＣＰＵ３はＢＩＯＳ２１の処理により、ＲＡＭ６上へＯＳ２２を展開して実行し、ＯＳ２２が動作してＯＳ２２の処理による制御に移行した後、ＣＰＵ３はＯＳ２２の処理により、この複合機の主要なプログラムとその他のプログラムとの全アプリを順次起動し、この処理を終了する。
また、ステップ５３では、ＣＰＵ３はＯＳ２２の処理により、操作部７に複合機が起動不可能である旨のメッセージを表示し、ステップ５４へ進み、ＣＰＵ３はＯＳ２２の処理により、複合機の動作を停止し、この処理を終了する。
【００６４】
図６で示した処理の場合、ステップ２５で起動選択されなかったアプリケーションがあると、再起動時に通常起動としても起動選択しなかったアプリケーションが原因で通常起動できない場合がある。
そこで、図８に示したようなテーブルを複合機内に保持し、ステップ２５で起動選択されたアプリケーションは「１」を、起動選択されなかったアプリケーションは「０」を記入しておく。
図８ではプリンタアプリ２４とＦＡＸアプリ２６は起動選択されていることを示している。
また、ステップ２５において起動選択されたアプリケーションであっても記憶媒体の初期化によって復旧できないアプリケーションがあった場合、次回起動時に通常起動できない。
【００６５】
そこで、図９に示したようなテーブルを複合機内に保持し、ステップ３４で記憶媒体初期化後に再度起動確認した場合でも起動不可能なアプリケーションは「１」を記入する。
ここで、図９に示したテーブルの初期値は全て「０」としておく。
図９に示したテーブル内のフラグ例では、ＦＡＸアプリ２６が復旧できなかったことを示している。
図７に示した処理では、ステップ５０の判定で、通常起動時に図８と図９のテーブルを参照し、起動選択されていないアプリケーション（図８の例ではスキャナアプリ２５）、もしくは起動不可能と登録されたアプリケーション（図９の例ではＦＡＸアプリ２６）があった場合、ステップ５１で起動選択されているアプリかつ起動不可能以外のアプリのみ起動する（図８，図９の例ではプリンタアプリ２４のみ）。
【００６６】
ただし、この場合、デバイス（記憶媒体）の交換によって復旧が完了した場合においてもテーブル上に保存されているアプリケーションの起動選択情報（図８）やアプリケーションの起動可否情報（図９）によって起動されない状態が継続してしまうことになる。
そこで、デバイス交換後に一度復旧モードで起動し、ステップ４２で、アプリケーションの起動選択情報（図８）やアプリケーションの起動可否情報（図９）をクリアし、ステップ４３で、通常起動への移行を選択することにより、通常起動で全アプリケーションの起動が可能になる。
このとき、ステップ４２の処理は、アプリケーションの起動選択情報（図８）を全て「１」に、アプリケーションの起動可否情報（図９）は全て「０」にするものとする。
【００６７】
このようにして、復旧起動時に初期化しなかった記憶媒体によって通常起動できなくなることがなくなる。
また、記憶媒体の交換によって復旧した後に全てのアプリケーションを起動可能にすることができる。
さらに、記憶媒体の初期化によって一部のアプリケーションが起動可能な状態とならなかった場合、再起動時に通常起動が可能になる。
【産業上の利用可能性】
【００６８】
この発明による画像形成装置と画像形成装置の障害復旧方法とプログラムは、プリンタ，コピー，ファクシミリ，スキャナを含む複数種類の機能を果たす複合機を含む画像形成装置において適用することができる。
【符号の説明】
【００６９】
１：コントローラ    ２：ＡＳＩＣ    ３：ＣＰＵ    ４：ＨＤＤ    ５：ＲＯＭ    ６：ＲＡＭ    ７：操作部    ８：スキャナ部    ９：ＦＡＸ部    １０：エンジン部    ２０：ソフトウェア群    ２１：ＢＩＯＳ    ２２：ＯＳ    ２３：コピーアプリ    ２４：プリンタアプリ    ２５：スキャナアプリ    ２６：ＦＡＸアプリ    ３０：ＳＲＭ    ３１：ＥＣＳ    ３２：ＭＣＳ    ３３：ＯＣＳ    ３４：ＦＣＳ    ３５：ＮＣＳ    ３６：ＳＣＳ
【先行技術文献】
【特許文献】
【００７０】
【特許文献１】特開２００３−８４９５６号公報
【図１】
0005458838.tif 000002
【図２】
0005458838.tif 000003
【図３】
0005458838.tif 000004
【図４】
0005458838.tif 000005
【図５】
0005458838.tif 000006
【図６】
0005458838.tif 000007
【図７】
0005458838.tif 000008
【図８】
0005458838.tif 000009
【図９】
0005458838.tif 000010