2016-04-22 5 views
0

Ich habe eine SNMP-Listener, die perfekt funktioniert, wenn ich es manuell in eine Bildschirm-Bash-Sitzung ausführen. Wie folgt aus:Fehler Python-Skript in Bildschirm Sitzung

screen bash 
python snmp_listener.py 
ctrl A + D 

Problem:

ich diese Aufgabe in Shell-Skript automatisieren möchten wie folgt aus:

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

jedoch nach dem Ausführen von meinem Skript, wenn ich meinen Bildschirm befestigen mit screen -r Ich habe diesen Fehler:

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 
$ 

Wer weiß, warum es nicht nur mit meinem Shell-Skript funktioniert?

Antwort

0

Versuchen Sie, die Ausführung zu einem einzelnen String oder .sh-Datei zB umschließenden:

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

Nein, es funktioniert nicht:/Thx zu Ihrer Hilfe sowieso. – onedkr

0

Ich bin kein screen Profi, aber ich glaube nicht, dass diese screen verwandt ist.

  • Starten Sie beide Ihrer Varianten mit den gleichen Privilegien?
  • Haben Sie versucht, die Umgebungen zu vergleichen? (z. B. Aufruf env > /tmp/thescriptenv)
  • Haben Sie versucht, andere Python-Skripte in der nicht funktionierenden Variante ausführen?

Warum möchten Sie diese Befehle in einer screen Sitzung ausführen? Wenn Sie nur Logs aggregieren möchten oder die Sitzung beim Logout laufen lassen möchten, wäre http://supervisord.org/ eine bessere Alternative (IMO).

Verwandte Themen