如何将输入作为服务提供给 Python 脚本 运行
How do I provide input to Python script running as a service
我是 运行 一个 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 文件并在其中存储需要在服务器和服务之间移动的数据。它有点粗糙,但现在可以用了。
我是 运行 一个 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 文件并在其中存储需要在服务器和服务之间移动的数据。它有点粗糙,但现在可以用了。