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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Windows Server

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

Q&A

解決済

2回答

2129閲覧

WindowsServerで自動ログインとnode.jsの自動起動

Qoo

総合スコア1249

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Windows Server

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

0グッド

0クリップ

投稿2018/04/19 06:40

Windows2012R2 + node.jsをクラウドサーバで運用しています。

毎朝5時に再起動をかけるようスケジュールを組んでおりまして
WINDOWSの自動ログイン+スタートアップにnode.jsの起動をバッチファイルを格納しています。

約半年程度運用してきて、今まで問題なく動作していたのですが、
最近になって、サイトにアクセスできないなどユーザの連絡から確認すると
windowsserverは起動しているのですが、バッチファイルが起動されていないことが多く
起動していない場合は手動でバッチファイルを起動している状態です。

また、正常に起動することもあり、起動しない場合と比較するとほぼ、2日に1回くらいで
発生しているような感じなのです。

考えられるのは再起動はされているが自動ログインができていないためバッチファイルが起動できていない
という場合、どのような対処方法が考えられますでしょか。

また、現在node.jsをバッチファイルで起動しているのですがこれをwindowsサービスなどで登録するにはどのようにすればよいでしょうか。

お手数ですがアドバイス頂ければと思います。

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

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

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

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

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

guest

回答2

0

考えられるのは再起動はされているが自動ログインができていないためバッチファイルが起動できていない


自動ログオンができていないと言うのは致命的でちょっと考えづらいのですが、ログオン後にそのログオンユーザーのスタートアップでバッチファイルの起動(あるいはnode.jsの起動)が失敗していると言うのはあり得ると思います。Windowsの起動時には様々なWindowsサービスが長い時間かけて立ち上がってきて負荷が高いので、タイミングによってユーザープログラムが起動に失敗することもあります。(Windows Serverなら尚更)

そのスタートアップがログオンユーザーでのものか、システムのものかによっても起動のタイミングは変わってきますが、失敗の原因はイベントビューアーでイベントログを確認することでヒントを得られるかもしれません。
※node.js自体はイベントログを出力していない可能性もあるので、注意してください。

問題の原因がWindows起動時の各種プログラムの起動ラッシュに関係する場合、私の経験上からも、対策としては先のotnさんの回答にあった方法が良い結果を得られやすいと思います。

node.jsアプリをWindowsサービス化する方法はいくつかあるようです。「node.js windows service」などと検索するといくつも記事がヒットします。ただ、node.jsアプリをWindowsサービス化しても、Windowsの起動時にnode.jsアプリを同時起動することで発生しやすい問題は残ると思うので、解決にはならず、もしかしたらWindowsサービス化したことによる別の問題も起きるかもしれません。それを考えるとまた先の話に戻って、otnさんが回答されたバッチスクリプトをタスクスケジューラーで起動するなり、スクリプト先頭で時間待ちをする方が新しい問題を持ち込むことも無く、良いかと思います。


追記しました:2018/04/20 02:56

回答した後に、「再起動はされているが自動ログインができていない」ことに対して少し考えました。回答では「致命的で考えづらい」と書きましたが、ユーザープロファイルのロードに失敗して自動ログオンできないケースは有るかもしれないと思い直しました。そんな場合、恐らくエラーとしてイベントログに出力されているでしょうし、また、バッチファイルのスクリプトも実行できていないと思いますので、注意してみてください。

投稿2018/04/19 17:34

編集2018/04/19 17:56
dodox86

総合スコア9183

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

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

0

ベストアンサー

タスクスケジューラで、起動時に実行するようにすればどうでしょうか。
具体的な設定選択肢の文言はOSによって異なるようです(Windows7だと"スタートアップ時")。
バッチスクリプトの先頭で、ある程度時間待ちをした方が良いかもしれません。

投稿2018/04/19 08:48

otn

総合スコア84555

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

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

Qoo

2018/04/22 05:49

テストしたらうまく起動したので、こちらでしばらく様子をみたいと思います。 ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問