2016-04-22 5 views
0

私はスクリーンbashセッションに手動で実行すると完全に動作するsnmpリスナーを持っています。このように:スクリーンセッションのエラーpythonスクリプト

screen bash 
python snmp_listener.py 
ctrl A + D 

問題:私はscreen -rと私の画面を添付したときに私のスクリプトを実行した後、しかし

screen -dmS snmp bash -c "sleep 10; python snmp_listener.py; exec sh" 

:私はこのようなシェルスクリプトで次の作業を自動化したい

私はこのエラーがあります:

Traceback (most recent call last): 
    File "snmp_listener.py", line 1, in <module> 
    import netsnmp 
    File "build/bdist.linux-armv7l/egg/netsnmp/__init__.py", line 1, in <module> 
    File "build/bdist.linux-armv7l/egg/netsnmp/client.py", line 1, in <module> 
    File "build/bdist.linux-armv7l/egg/netsnmp/client_intf.py", line 7, in <module> 
    File "build/bdist.linux-armv7l/egg/netsnmp/client_intf.py", line 6, in __bootstrap__ 
ImportError: /home/pi/.python-eggs/netsnmp_python-1.0a1-py2.7-linux-armv7l.egg-tmp/netsnmp/client_intf.so: undefined symbol: netsnmp_memdup 
$ 

誰もがなぜ自分のシェルスクリプトでしか動かないのか知っていますか?

答えて

0

は、単一の文字列または.SHファイルなどへのあなたの実行を囲んで試してみてください。

screen -m -d -S snmp python snmp_listener.py 

cat pyrun.sh 
#!/bin/bash 
python snmp_listener.py 
# ^^ content of pyrun.sh 
screen -m -d -S snmp ./pyrun.sh 
+0

いいえ動作しません:/あなたの助けをとにかくThx。 – onedkr

0

私はプロscreenませんが、私はこれは、関連screenではないと思います。

  • 同じ特権を持つ両方のバリアントを開始していますか?
  • 環境を比較しようとしましたか? (例:env > /tmp/thescriptenvを呼び出してください)
  • 他のpythonスクリプトを動作しない形式で実行しようとしましたか?

なぜこれらのコマンドをscreenセッションで実行しますか?ログを集約したり、ログアウト時にセッションを実行し続けるだけの場合は、http://supervisord.org/がより良い選択肢(IMO)になります。