я сделал два сервера opc-ua, один из которых читает значение тега из текстового файла, а другой - значение SQL.Теперь я создал «серверное меню» в tkinter, которое может запускать серверы среди прочего.Проблема в том, что я не могу выключить один из них и оставить другой запущенным, я хочу что-то вроде этого:
import subprocess
def start_txt():
txt = subprocess.Popen("python TAG_TXT.py &", shell=True)
return txt
def stop_txt():
subprocess.Popen('taskkill /F /PID {0}'.format(start_txt(txt)),
shell=True)
def start_SQL():
SQL = subprocess.Popen("python TAG_SQL.py &", shell=True)
return SQL
def stop_SQL():
subprocess.Popen('taskkill /F /PID {0}'.format(start_SQL(txt)),
shell=True)
если я использую это:
os.system("taskkill /f /im python.exe")
я убиваю обоихсерверы
сообщение об ошибке:
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Users\admin\AppData\Local\Programs\Python\Python37-
32\lib\tkinter\__init__.py", line 1702, in __call__
return self.func(*args)
File "C:\PY_OPCUA\servermeny_GUI.py", line 237, in kill_txt
subprocess.Popen('taskkill /F /PID {0}'.format(textfile_server(txt)),
shell=True)
NameError: name 'txt' is not defined
я использовал tkinter только один раз, так что это, вероятно, очень легко исправить