/ / Windows python skrypt do uruchomienia serwera i kontynuuj - python, windows, subprocess, popen

Skrypt Windows Pythona do uruchomienia serwera i kontynuowania - python, windows, podproces, popen

Pracuję nad moim skryptem Pythona, aby uruchomić serwer, może być w tle lub w innym procesie, a następnie wykonać dalsze przetwarzanie przed zabiciem uruchomionego serwera.

Gdy reszta przetwarzania zakończy się, zabij uruchomiony serwer.

Na przykład

server_cmd = "launch_server.exe -source "+ inputfile
print server_cmd
cmd_pid = subprocess.Popen(server_cmd).pid
...
...
... #Continue doing some processing
cmd_pid.terminate() # Once the processing is done, terminate the server

Niektóre z nich nie kontynuują skryptuuruchomienie serwera, ponieważ serwer może działać w nieskończonej pętli nasłuchiwania żądania. Czy istnieje dobry sposób na wysłanie tego procesu w tle, tak aby nie oczekiwał wejścia linii poleceń.

Używam Pythona 2.7.8

Odpowiedzi:

2 dla odpowiedzi № 1

To dziwne, że twój skrypt nie jest kontynuowany po uruchomieniu polecenia serwera subprocess moduł, Popen uruchamia kolejny proces potomny, gdy proces nadrzędny (skrypt) powinien przejść dalej.

Jednak w twoim kodzie jest już błąd: cmd_pid to jest int obiekt i nie ma terminate metoda. Powinieneś użyć subprocess.Popen obiekt do wywołania terminate metoda.


2 dla odpowiedzi nr 2

Niewielka zmiana rozwiązała problem

server_proc = subprocess.Popen (serwer_cmd, stdout = subprocess.PIPE)

server_proc.terminate ()

Dzięki Xu za poprawienie w zakończeniu.