2020-12-24に更新

cron から node スクリプトをキックする

cron から nodeスクリプト をキックする方法について長らく嵌まっていたのでメモ。

経緯

とあるサーバで markdown-pdf によるPDF生成を行いたくて、自前の nodeスクリプト を作成・運用していました。

ただし、そのサーバは一定期間ごとに再起動をかけているため、その度に自前の nodeスプリプト のプロセスが切れてしまいます。そこで cron で「再起動後に nodeスクリプト をキックする」ようなジョブを書いたのですが……。

@reboot root node /PATH/TO/NODE-SCRIPT/index.js &
30 2 * * 0 root reboot

しかし、上手く行きませんでした。

調査・対処

/var/log/cron で確認すると、 cronジョブ 自体は実行されていそうなのですが、 ps aux | grep "node" で確認すると、 node のプロセスはありません。起動できていないようです。

その原因が分からず悩まされていたのですが、ふと node のパスがおかしいのでは、と気付き以下のように修正。

@reboot root /usr/local/bin/node /PATH/TO/NODE-SCRIPT/index.js &
30 2 * * 0 root reboot

※ちなみにこのサーバは n を使って node がインストールされています。

これで試験したところ、再起動後にスクリプトが起動・動作していることを確認できました。

参考

Originally published at labor.ewigleere.net
ツイッターでシェア
みんなに共有、忘れないようにメモ

arm-band

フロントエンド・バックエンド・サーバエンジニア。LAMPやNodeからWP、Gulpを使ってejs,Scss,JSのコーディングまで一通り。たまにRasPiで遊んだり、趣味で開発したり。

Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

有料記事を販売できるようになりました!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?

コメント