Я хочу выйти из logsta sh в моем python скрипте, раньше в cmd я просто нажимаю ctrl- c, чтобы выключить его. Я пытался использовать одну из этих функций, но она не работает. У кого-нибудь есть идея, пожалуйста, как я могу это сделать.
import os
import subprocess
import signal
@main.route('/data')
def data():
...
target_dir = os.path.join("C:\elastic_stack\logstash-7.6.2")
# small check
if os.path.isdir(target_dir):
os.chdir(target_dir)
else:
print(" pathname does not refer to an existing directory")
# current working directory
print(os.getcwd())
# start logstash directly os.system will return the return code of the command if it's 0 means OK
os.system(".\\bin\\logstash -f C:\\Users\\Asus\\Dropbox\\PFE_part2\\New_flask_app\\logstash.conf")
# if you need the output after you started logstash it will work ONLY in Python3
process = subprocess.Popen([".\\bin\\logstash", "-f", "C:\\Users\\Asus\\Dropbox\\PFE_part2\\New_flask_app\\logstash.conf"], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
output = process.stdout
errors = process.stderrt
#After logstash finished the work above, it shut down
os.kill(process.pid, signal.SIGTERM) #that doesn't work
process.sendcontrol('c') #or either this
process.close()
return render_template('data.html')