import socket import struct import sys import subprocess def goScript(cmd): param = cmd pid=subprocess.Popen(('x-terminal-emulator -e '+ param).split(),stdout=subprocess.PIPE) output,error=pid.communicate() if error: print (error) else: print('ok') print(pid) print(pid.returncode) PORT=10000 multicast_group = '224.3.29.71' server_address = ('', PORT) # Create the socket sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # Bind to the server address sock.bind(server_address) # Tell the operating system to add the socket to the multicast group # on all interfaces. group = socket.inet_aton(multicast_group) mreq = struct.pack('4sL', group, socket.INADDR_ANY) sock.setsockopt(socket.IPPROTO_IP, socket.IP_ADD_MEMBERSHIP, mreq) # Receive/respond loop while True: print ('\nwaiting to receive message on ',multicast_group, PORT) data, address = sock.recvfrom(1024) print('received %s bytes from %s' % (len(data), address)) print(data) if(data==b'go'): goScript("./myGo2.sh") #print("ciao!!!!!!") print ('sending acknowledgement to', address) sock.sendto(data, address)