アップスタートエラーを診断する方法


8

/ etc / initにUpstart confファイルがあり、次のように手動で起動すると正常に起動します。

sudo initctl start myconf

sudoコマンドなしで実行すると、ユーザー名によるエラーname =(unset)エラーが表示されますが、Upstartが正常に起動したときにシステムの起動時にジョブが初期化されると、問題は発生しませんか?(それはすべてrootによって実行されるため)。

スクリプトの内容は次のとおりです。

start on runlevel [2345]
stop on runlevel [^2345]

exec /spatial/server_init.sh

... server_init.shは、Pythonスクリプトベースのサーバーを実行します。シェルにログインした直後にスクリプトのステータスを確認すると、stop / waitingと表示されます。また、「start on net-device-up」でconfファイルを試しましたが、何も変わりません。問題のデバッグに役立つ可能性のあるUpstartシステムログまたは類似のログを確認する方法はありますか?

ありがとう


あなたが持っている時には場合はchdir、あなたの成り上がりのスクリプトで、そのディレクトリが存在しない場合、ログは書き込まれません、あなたは不可解なメッセージを取得します:start: Job failed to start
knownasilya

回答:


13

試してください:

/var/log/upstart/JOBNAME.log

デバッグ中にタスクに変換することを検討してください。

空間スタートで開始

仕事

exec /spatial/server_init.sh

次にコンソールから:

initctlはspatial-startを発行します
initctl status spatial-start

また、試してみます、ありがとう。これは実際にUpstart固有の問題を出力すると思います。confファイルに構文エラーも含まれていますか?
U2ros 2012年

これはstdout / errがリダイレクトされる場所なので、冗長にした方がよいでしょう。
ppetraki 2012年

1

わかりました、1つの方法を見つけましたが、スクリプトによって実行されているプログラムでエラーが発生した場合(およびそのプログラムがもちろんエラーメッセージを返す場合)にのみ機能しますが、Upstart自体ではありませんが、この場合に必要です。私がしたことは、プログラムの出力を次のようなログファイルにリダイレクトすることでした。

exec /spatial/server_init.sh >> /spatial/ogc.log 2>&1

もう1つは、Upstartの詳細度を上げることができることを発見したので、必要に応じて、そこから始めます。


0
  1. upstartディレクトリが存在することを確認します:/ var / log / upstart(存在しない場合はディレクトリを作成します)
  2. upstartのバージョンを次の方法で確認します。initctlversionまたはapt-cache policy upstart

    v1.4より前のすべてのバージョンのUpstartでは、コンソールのデフォルト値はconsole noneでした。Upstart 1.4以降、デフォルト値はconsole logです。

  3. upstart(スクリプトフェーズの前)にコンソールログを追加する
  4. ログは/var/log/upstart/"upstart-JOBNAME".logにあります

例:

コンソールログ

脚本

exec /spatial/server_init.sh

終了スクリプト

コンソールログ -標準入力を/ dev / nullに接続します。標準出力と標準エラーは疑似端末の一方の端に接続されているため、ジョブ出力は、システムジョブの場合は/ var / log / upstart /および$ XDG_CACHE_HOME / upstart /(または$ HOME /のディレクトリにあるファイルに自動的に記録されます。 cache / upstart /($ XDG_CACHE_HOMEが設定されていない場合)セッションジョブ。

コンソールなし -ジョブの標準入力、標準出力、および標準エラーファイル記述子を/ dev / nullに接続します。

コンソールの詳細については、以下のリンクをご覧ください。

http://upstart.ubuntu.com/cookbook/#console-log

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.