ich möchte gerne ein Python Script als Dienst auf einem Windows Server laufen lassen. Dies gelingt mir jedoch nicht so ganz.
Das Script ließt Daten aus einer S7 aus und Triggert unter anderem von 4 Webcams Bilder an die auf einem Laufwerk abgelegt werden.
Starte ich das Script unter dem angemeldeten Benutzer mit "python.exe SCRIPTNAME.PY" oder "pythonw.exe SCRIPTNAME.PY"
läuft es wie es soll. Starte ich es als Dienst so beendet sich das Script nach ein paar Sekunden wieder. Der Dienst wird unter dem
selben Benutzer mit entsprechenden Berechtigungen ausgeführt.
Kann mir vielleicht jemand einen Tipp geben was da verkehrt läuft?
Vielen Dank im vorraus.
Hier das Script:
Code: Alles auswählen
import socket
import time
import os
import urllib2
from thread import start_new_thread
Quelle='10.120.0.2'
Ziel='10.120.0.5'
Cam1='10.110.1.2'
Cam2='10.110.1.3'
Cam3='10.110.1.4'
Cam4='10.110.1.5'
Port=2001
datain=' '
dataout=' '
s_udp_sock = socket.socket( socket.AF_INET, socket.SOCK_DGRAM )
#host = socket.gethostname()
s_udp_sock.bind((Quelle, Port))
print 'Emfange von S7'
print 'Quelle',Quelle
print 'Port=',Port
def empf(): #wartet in einer Endlosschleife auf eingehende Nachrichten.
global datain
while 1: # Endlosschleife 192.168.1.111
print 'test'
datain, addr = s_udp_sock.recvfrom( 1024 ) # Puffergröße: 1024 Bytes
print datain
vera()
def send(): #sendet Daten
global dataout
global Port
global Ziel
print "Nachricht:", dataout
s_udp_sock.sendto( dataout, (Ziel,Port) )
def druck(Dru):
global datain
global dataout
l=len (datain) - 1
PDF= datain[1:l+1]
datain=" "
PDFP='C:\\"Program Files (x86)"\Adobe\\"Reader 11.0"\Reader\\acrord32.exe /h /t L:\\'
druck = PDFP+PDF+".PDF"+" "+Dru
os.system("taskkill /im AcroRD32.exe")
os.system("exit")
os.system(druck)
def vera(): #Verarbeitet Daten
global datain
global dataout
if datain[0]=="a":
l=len (datain) - 1
buffer = urllib2.urlopen('http://'+Cam1+'/axis-cgi/jpg/image.cgi').read()
PDF=datain[1:l+1]+"_1.jpg"
f = open( os.path.join('P:', PDF), "wb" )
f.write(buffer)
f.close()
buffer = urllib2.urlopen('http://'+Cam2+'/axis-cgi/jpg/image.cgi').read()
PDF=datain[1:l+1]+"_2.jpg"
f = open( os.path.join('P:', PDF), "wb" )
f.write(buffer)
f.close()
dataout="T"
send()
if datain[0]=="b":
l=len (datain) - 1
buffer = urllib2.urlopen('http://'+Cam3+'/axis-cgi/jpg/image.cgi').read()
PDF=datain[1:l+1]+"_3.jpg"
f = open( os.path.join('P:', PDF), "wb" )
f.write(buffer)
f.close()
buffer = urllib2.urlopen('http://'+Cam4+'/axis-cgi/jpg/image.cgi').read()
PDF=datain[1:l+1]+"_4.jpg"
f = open( os.path.join('P:', PDF), "wb" )
f.write(buffer)
f.close()
dataout="T"
send()
if datain[0]=="s":
l=len (datain) - 1
PDF="L:\\"+datain[1:l+1]+".pdf"
if os.path.isfile( PDF ): dataout="T"
else: dataout="F"
send()
if datain[0]=="l":
Dru='"Dr1"'
druck(Dru)
if datain[0]=="m":
Dru='"Dr1ohnelogo"'
druck(Dru)
if datain[0]=="n":
Dru='"Dr2"'
druck(Dru)
if datain[0]=="o":
Dru='"Dr2ohnelogo"'
druck(Dru)
empf()