2

スーパーバイザー ( http://supervisord.org/ ) の監視下でプロセスを実行しようとしています。

ほぼ同じ環境 (Ubuntu 12.04 LTS) を実行している 2 つの環境があります。

現在の問題は、Supervisor で実行しようとしたプロセスが、あるサーバーでは完全に実行できるが、他のサーバーでは実行できないことです。

障害が発生したサーバーで、スーパーバイザーなしで同じプロセスを実行しようとしました。全て大丈夫。何か案が?ありがとう。

Supervisor によって提供される stderr は次のとおりです。

Traceback (most recent call last):
File "/usr/storm-0.8.1/bin/storm", line 402, in <module>
  main()
File "/usr/storm-0.8.1/bin/storm", line 399, in main
  (COMMANDS.get(COMMAND, "help"))(*ARGS)
File "/usr/storm-0.8.1/bin/storm", line 263, in supervisor
  jvmopts = parse_args(confvalue("supervisor.childopts", cppaths)) + [
File "/usr/storm-0.8.1/bin/storm", line 58, in confvalue
  p = sub.Popen(command, stdout=sub.PIPE)
File "/usr/lib/python2.7/subprocess.py", line 679, in __init__
  errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1249, in _execute_child
  raise child_exception
OSError: [Errno 2] No such file or directory

subprocess.py とその許可を再確認したところ、成功したサーバーと同じように見えます。

もっと情報を提供できればいいのですが、これが私の持っているすべてです。多分誰かが私にどこから始めるべきかを提案できますか?

4

2 に答える 2

3

Java が PATH にないため、Storm を起動しようとしたときに、まさにこの問題が発生しました。そうしなければならなかった

export JAVA_HOME=...  # specify your own path here
export PATH=$PATH:$JAVA_HOME/bin   # allows for finding the java executable

したがって、あなたの問題はPython(またはPythonモジュール)ではなく、Javaであると推測しています。

これを理解するために、私は実際に入り、いくつかの debug print ステートメントを storm.py スクリプトに追加して、サブプロセスとして実行しようとしているコマンドを確認できるようにしました。シェル スクリプトを介して同じコマンド (Java クラスパスが引数として指定されているため、非常に大きい) を実行しようとしたとき、Java が見つかりませんでした。

'お役に立てれば。

于 2013-08-05T18:40:35.513 に答える