質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Jenkins

Jenkinsとは、Apache TomcatなどのServletで動作しているサーバーベースシステムです。Jenkinsはオープンソースであり、LInux,Mac OS X,Windows,Solaris,FreeBSDとOpenBSDのためのパッケージがあります。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

バッチファイル

バッチファイル(Batch File)は、Windowsのコマンドラインインタープリターによって複数のコマンドを実行させる事が出来るスクリプトファイルです。

Windows Server

Windows Serverとは、Microsoft社のサーバ用オペレーティングシステムの総称です。 企業内ネットワークなどで利用されるサーバ機へ導入することを想定して開発されているため高い安定性があり、 管理機能を提供するソフトウェアが多く含まれています。

Q&A

解決済

2回答

9721閲覧

タスクスケジューラで実行した常駐プログラムが常駐してくれない

ketztaro

総合スコア101

Jenkins

Jenkinsとは、Apache TomcatなどのServletで動作しているサーバーベースシステムです。Jenkinsはオープンソースであり、LInux,Mac OS X,Windows,Solaris,FreeBSDとOpenBSDのためのパッケージがあります。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

バッチファイル

バッチファイル(Batch File)は、Windowsのコマンドラインインタープリターによって複数のコマンドを実行させる事が出来るスクリプトファイルです。

Windows Server

Windows Serverとは、Microsoft社のサーバ用オペレーティングシステムの総称です。 企業内ネットワークなどで利用されるサーバ機へ導入することを想定して開発されているため高い安定性があり、 管理機能を提供するソフトウェアが多く含まれています。

0グッド

0クリップ

投稿2017/12/28 01:39

###前提・実現したいこと
Windowsのタスクスケジューラが思ったように動作させられません。

タスクスケジューラの中身は以下のようになっています。

設定設定内容
全般(場所)|
全般(セキュリティオプション)セキュリティオプション:ユーザがログオンしているかどうかにかかわらず実行する
トリガースタートアップ時(システム起動時)
操作プログラムの開始(Jenkinsのスレーブノードを立ち上げるバッチファイルを実行しています。)
条件特になし
設定タスクを要求時に実行する=ON
設定タスクを停止するまでの時間=ON (3日間)
設定要求時に実行中のタスクが終了しない場合、タスクを強制的に停止する=ON

###発生している問題・エラーメッセージ
再起動後に実行され、常駐するはずのタスクが、すぐに完了?してしまっています。(上から5-6行目。)
1~4行目は、先ほど手動でタスクを実行した際に出力されたものです。こちらは、すぐに完了せずに残り続けているようです。
タスクの履歴

手動実行を試す前のタスクの"状態"は"準備完了"となっていたと思いますが、手動実行後は"実行中"となっています。
そして、"実行中"の今はJenkinsのスレーブノードとして正常に動作しています。
タスクの状態

実行したバッチファイルの中身は以下のようになっています。

Batchfile:

1java -jar slave.jar -jnlpUrl http://10.81.xx.xxx:xxxx/jenkins/computer/win_server/slave-agent.jnlp -secret hogefuga

###試したこと
ひとまず、イベントビューアーのログを見てみましたが、知識がなく、何をどう調べていいのかわからず断念しました。

###補足情報(言語/FW/ツール等のバージョンなど)
本タスクスケジューラを実行しているサーバのOSはWindows Server 2012 R2 Standard です。
タスクスケジューラを使ったのは初めてで、問題解決の糸口になる情報が何かもよくわかっていません。もし解決に役立つ他の情報が必要そうでしたら、取得しますので、教えて頂けるとありがたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

起動時のみ失敗するのであれば java 仮想マシンなどの必要なサービスが起動する前にタスクを実行しようとしているのではありませんか?
実行を遅延させて試してみてください。

投稿2017/12/28 03:26

Zuishin

総合スコア28656

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

バッチファイルを単独で実行するときちんと常駐するのでしょうか?
javaに関してはよくわからないのですがタスクスケジューラは
「バッチファイルを自動でダブルクリックしてくれる」くらいのもので
「タスクスケジューラがバッチを常駐化する」わけではないです。

追記
手動実行に関しては書いてありましたね、申し訳ありません。
自動実行時のタイミング(システム起動時)が悪いかどうかを調べるために
一度1分後くらいに時刻を設定して自動起動をさせてみてはどうですか?
システム起動時のほかにadministratorのログオン時などタイミングはほかにもあるように思います。
トリガーのタイミングが悪いのではないかと思います。

投稿2017/12/28 03:02

編集2017/12/28 03:11
sousuke

総合スコア3828

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ketztaro

2017/12/28 03:58

ありがとうございました!!! タイミング問題でした! ただタイミングが悪かったのはWindows側ではなく起動するアプリ(Jenkins側)の方でした。 「きちんと常駐するのでしょうか」の一言でハッとひらめき、Jenkins側のログを確認してみましたところ、接続しに行った際に、エラーが出力されていました。そのエラーが原因でタスクが完了してしまったようです。 ■以下原因の詳細■ JenkinsはMasterとSlaveの2台をネットワークで接続して動かしています。 今回Slaveが再起動されて、バッチファイルが実行されて、Masterに接続しにいったところ、 MasterはSlaveがずっと生きていたと勘違いをしていて、「もう接続してますよ」というエラーがでてしまっていました。(Slave機の再起動は2分足らずで完了する一方で、MasterからSlaveへの死活監視は60分間隔) Slaveがシャットダウン時にコネクションを切ったことをMasterに通知できるような仕組みを探してみます。できなさそうなら、死活監視の間隔を狭められるなら30秒程度に狭めようと思います。
sousuke

2017/12/28 04:39

無事解決して良かったです。こちらで誤解して書いた文章が解決の糸口になってホッとしました(^_^;)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問