python - 如何为作为服务运行的 Python 脚本提供输入
问题描述
我正在运行一个 python 脚本作为服务,它接受一些输入并提供输出。(我将它作为服务运行,因为初始化需要很长时间,所以我没有运行脚本,而是一直将它作为服务运行)
我曾经这样从 Flask 服务器调用它:
output, err = subprocess.Popen(["python3", SCRIPT_FILE_PATH, "--question", question], stdout=subprocess.PIPE).communicate()
Python脚本:
from haystack.reader import FARMReader
reader = FARMReader(model_name_or_path="###", use_gpu=False)
if __name__ == "__main__":
# I did this when running this as a script to get the input
parser = argparse.ArgumentParser()
parser.add_argument('--question', type=str, required=True)
args = parser.parse_args()
question = args.question
# code stuff
print(output)
服务文件:
[Unit]
Description=Test Service
After=multi-user.target
Conflicts=getty@tty1.service
[Service]
Type=simple
ExecStart=/usr/bin/python /home/root/test_service.py
StandardInput=tty-force
[Install]
WantedBy=multi-user.target
我如何与此服务通信?
解决方案
我在 /tmp 中创建了一个 JSON 文件,并将需要在服务器和服务之间移动的数据存储在其中。它有点粗糙,但现在可以使用。
推荐阅读
- bootstrap-4 - 相同的 Html 不同的表
- python-3.x - Keras - steps_per_epoch 计算与 ImageDataGenerator 输出不匹配
- algorithm - 算法 - 找到最大周长的三角形
- c# - 为什么当使用 PlayerPrefs.Save() 它不保存对象的父对象?
- acumatica - 通过代码为案例屏幕插入新活动
- javascript - 输入复位反应
- c - 删除附加在C中链表末尾的节点
- python - 如何将字符串作为变量插入字符串?
- javascript - 性能提升,JQuery+json数组代码的代码优化
- ms-access - VBA 同时返回一个值和错误信息