1つのアプリケーションを実行するには、バッチファイルを開始する必要があります(Jettyの起動、ライブログの表示などを行います)。アプリケーションは、このバッチファイルが実行されている場合にのみ機能します。そのため、このバッチファイルをWindowsサーバーからログアウトせずに実行する必要があります。
このバッチファイルをサービスとして実行できますか? 類似した質問 からの提案の1つを試しています。
NSSM は完全に無料で非常に簡単で、管理者としてコマンドプロンプト/ターミナルを実行します。
nssm install "YourCoolServiceNameLabel"
ダイアログが表示され、実行するファイルの場所を選択できます。
アンインストールする
nssm remove "YourCoolServiceNameLabel"
起動時に実行するようにスケジュールされたスケジュール済みタスクとして単純に設定しないのはなぜですか?
これを行うための組み込みのWindowsコマンドがあります: sc create 。 nssmほど豪華ではありませんが、追加のソフトウェアをダウンロードする必要はありません。
sc create "ServiceName" start= demand displayname= "DisplayName" binpath= [path to .bat file]
注意
=
の後に空白が必要です無料ではありませんが(39ドル)、 FireDaemon は非常にうまく機能しているので、お勧めしなければなりません。バッチファイルを実行しますが、スケジューリング、サービスの監視、GUIまたはXMLベースのサービスのインストール、依存関係、環境変数、ログ管理などの追加の非常に便利な機能を備えています。
FireDaemonを使用してJBossアプリケーションサーバーを起動し始めました(run.bat)が、FireDaemonの豊富な設定機能により、バッチファイルを作成し、FireDaemonサービス定義でコマンドの意図を再作成します。
このサービス(または技術的には任意のサービス)を管理するWindowsサーバーが多数ある場合は、Trinityと呼ばれるSUPER FireDaemonも参照してください。
ダグ・カリーが言うように、RunAsServiceを使用します。
私の過去の経験から、あなたはあなたが生成するサービスが
最後の1つがまだ当てはまるかどうかはわかりません...それは私が少し前に取り組んだプロジェクトの1つの大きな夜馬でした。
追加のソフトウェアは必要ありません。タスクスケジューラを使用->タスクの作成->非表示。非表示のチェックボックスは、左下隅にあります。ログイン時にトリガーするタスク(または任意の条件)を設定し、アクションタブでタスクを選択します。非表示で実行すると、タスクがサービスのようにバックグラウンドで静かに実行されます。
「ユーザーがログインしているかどうかに関係なく」実行するようにプログラムを設定する必要があることに注意してください。そうしないと、プログラムは引き続きフォアグラウンドで実行されます。
AlwaysUp は、バッチファイルをサービスとして簡単に実行します。これはFireDaemon(上記)に似ており、無料ではありませんが、豊富な機能セットがプロフェッショナルな環境の資産になることがあります。
がんばろう!