2

バージョン8.04「Hardy」であるubuntuマシン用のupstartスクリプトを作成しようとしています。このサイトの指示に従いました: node.js の upstart ですが、これらの指示は ubuntu の現在のバージョン用のようです。

/etc/init ディレクトリが自分のマシンに存在しないことに気付きました。最初にスクリプトを /etc/init.d ディレクトリに配置してから、/etc/init ディレクトリを作成してそこに配置しました。

以下に自分のアップスタート スクリプトを投稿します (基本的には上記の Web サイトと同じですが、いくつかのパスが変更されています)。ただし、start jobname を実行すると、「start: Unknown job: jobname」というエラーが表示されます。そこで、スクリプトをスリム化したバージョンに変更し、以下に投稿しましたが、それでも同じ結果が得られます。

今のところ、「nohup」コマンドを使用してノード サーバーを実行していますが、より恒久的なソリューションが必要です。

助けてください。

スクリプト 1:

description "node.js chat server"
author      "iandev ith3"

# used to be: start on startup
# until we found some mounts weren't ready yet while booting:
start on started mountall
stop on shutdown

# Automatically Respawn:
respawn
respawn limit 99 5

script
    # Not sure why $HOME is needed, but we found that it is:
    export HOME="/root"

    exec /root/local/node/bin/node /home/ian/chat.js >> /var/log/node.log 2>&1
end script

post-start script
   # optionally put a script here that will notifiy you node has (re)started
   # /root/bin/hoptoad.sh "node.js has started!"
end script

スクリプト 2:

description "node.js chat server"
author      "iandev ith3"

script
    exec /root/local/node/bin/node /home/ian/chat.js >> /var/log/node.log 2>&1
end script
4

3 に答える 3

3

フォーエバーを使用するだけです。https://github.com/indexzero/forever

于 2011-09-25T02:18:03.193 に答える
1

あなたが提供したウェブサイトを見ると、/ etc / initは単なるタイプミスであり、/ etc /init.d/である必要があります。あなたがチェックしたいと思うかもしれないいくつかの事柄:

  • スクリプトの実行可能フラグ。Ubuntuのほとんどのバージョンでは、コマンドラインから「ls」を実行すると、実行可能ファイルが緑色で表示されます。ファイルが実行可能かどうかを確認する場合は、コマンドラインから「ls-l/etc/init.d/YOUR_SCRIPT」を実行します。次のように表示されます。-rwxr-xr-x1rootroot 1342 2010-09-16 10:13 YOUR_SCRIPT xは、実行可能であることを意味します。実行可能フラグが設定されていない場合に設定するには、chmod u +xYOUR_SCRIPTを実行します。

  • 古いバージョンのubuntuの場合、スクリプトを/etc/rc.d/rc3.dまたは/etc/rc3.dに置く必要があると確信しています。Linuxが行うことは、rc0.dからrc5.dまで実行され、そこですべてのスクリプトを実行します。見た目から、ubuntuはこれからもっと単純なものに移行しているので、rcディレクトリがある場合は、スクリプトを少し編集する必要があるかもしれません。

とにかく、私はここで少し複雑になっていると思います。実行可能フラグを確認し、rcディレクトリがあるかどうかを確認してください。そこから先に進みます。

于 2011-09-25T02:44:02.570 に答える
1

sudo でプロセスを開始するのは最善ではないかもしれませんが、ローカル PC でセットアップしたものは次のとおりです。

#!upstart
description "node.js server"
author      "alessio"

start on startup
stop on shutdown

script
    export HOME="/ubuntu"

    exec sudo -u ubuntu /usr/bin/node /home/ubuntu/www/test.js 2>&1 >> /var/log/node.log
end script

お役に立てれば。

于 2011-11-04T15:55:07.277 に答える