0

installAnywhereを使用してWindowsサービスの登録アクションを使用してWindows NTサービスを登録しました。

LINUX でも同じことがしたい。Linux環境でサービスを登録したかったのですが、アクションが見つかりませんでした。

installAnywhere を使用して Linux にサービスを登録する考えはありますか?

4

1 に答える 1

0

Unix / Linux の世界で「標準」の起動プロセスに最も近いのは、AT&T System V init (Wikipedia) アプローチです。この「標準」は何年も前に AT&T の System V で作成され、その後、そのバリエーションが最も一般的な Unix および Linux バリアントに実装されました。

この方法では、実行レベルに基づいて/etcディレクトリの下にリンクを作成します。一部のディストリビューションでは、これに対して、元の AT&T System V アプローチとは少し異なるアプローチをとっています (上記の記事を参照してください)。

ここ数年で、これはよりトリッキーな命題になりました。Unix および Linux ディストリビューションでは、SysV init の欠点のいくつかに対処する新しいアプローチのために SysV init を放棄する傾向があります (上記の記事を参照してください)。

InstallAnywhere には、既定の "Create Unix System Service" アクションはありません。そのため、インストール エンジニアは自分でロールバックする必要があります。1 つの Unix/Linux プラットフォームのみをターゲットにしている場合は、比較的簡単です。スクリプトと構成ファイルを作成してインストールし、ディストリビューションの標準的なアプローチ (systemd、Upstart、launchd、SMF など) を満たすリンクを作成します。 . 私たちにとって、この作業のほとんどは、バッチ実行またはシェル スクリプト アクションに埋め込まれたスクリプトで行います。

異なるプラットフォームをターゲットにしている場合は、インストール時にどのプラットフォームを、場合によっては現在実行しているプラ​​ットフォームのバージョンを決定する必要があります。その後、現在のプラットフォームに適したインストール手順を実行する必要があります。

これは、サポートするプラットフォームに必要な手順をカプセル化した、プラットフォーム固有のルールが適用されたグループ アクションを作成することによって行われます。最後の手段として、「標準」の AT&T SysV アプローチをデフォルトとして使用し、スクリプトをインストールして、サポートされている実行レベルでアプリケーションを起動できるようにするために必要なリンクを作成します。

また、このトピックに関連するのは、Unix/Linux システム サービスを作成する負担を軽減するフレームワークの使用です。これらには以下が含まれます: Java Service WrapperYet Another Java Service WrapperApache Commons Daemon、および他の人。InstallAnywhere の外でスクリプトを動作させ、テストしてから、InstallAnywhere グループ アクションを作成し、インストール中にシステム サービスを構成するために必要なバッチまたはシェル スクリプト アクションを実行することをお勧めします。これは面倒なプロセスですが、各プラットフォームを InstallAnywhere の外部で動作させてから、そのプラットフォームを InstallAnywhere の内部に実装すると、長期的には時間を節約できます。利点としては、一度設定して動作させると、インストーラーのこの部分をしばらく変更する必要はありません。

私たちが検討しているが、まだ移行していない別のアプローチは、重い作業を行う単一のトップレベル スクリプトを使用することです。プラットフォーム名に関連付けられた標準の命名規則とディレクトリ構造を採用します。インストール中に、サポートされているすべてのプラットフォームのインストール スクリプトのディレクトリ構造全体をコピーします。その構造の最上部にあるのは、現在のプラットフォームをスニッフィングし、そのプラットフォームに適したスクリプトを実行する方法を知っている単一のスクリプトです。ユーザーがアプリケーションをシステム サービスとして有効にすることを選択した場合、インストール中にこの 1 つのスクリプトを実行します。インストールの最後に、インストール スクリプト ディレクトリを削除します。

これにより、インストーラーの複雑さが軽減され、インストーラーを変更することなく、より多くのプラットフォームのサポートを追加できるようになります。複数のプラットフォームをサポートしている場合は、このアプローチから始めることをお勧めします。将来、より多くのプラットフォームのサポートを追加する予定がある場合は、長期的には時間を節約できます。

于 2013-10-28T18:19:34.267 に答える