如何通过PM2生态系统文件运行Python模块?
解决PM2运行
python -m my_app的配置问题 你之前的配置无效,是因为PM2的script字段是用来指定被解释器执行的脚本文件路径,而非命令参数。把-m my_app填到script里,PM2会尝试寻找这个名字的文件,自然找不到,导致进程悄悄退出。
下面是两种可行的配置方式:
方式一:用args传递参数给Python解释器
保留interpreter字段,将-m my_app作为参数传给Python,script设为空字符串即可:
{ "apps": [{ "name": "my_app", "script": "", "args": "-m my_app", "instances": "1", "wait_ready": true, "autorestart": false, "interpreter" : "/home/my_user/.cache/pypoetry/virtualenvs/my_app-ij6Dv2sY-py3.10/bin/python" }] }
方式二:直接用command字段写完整启动命令
放弃interpreter和script,直接把整个启动命令写入command,逻辑更直观:
{ "apps": [{ "name": "my_app", "command": "/home/my_user/.cache/pypoetry/virtualenvs/my_app-ij6Dv2sY-py3.10/bin/python -m my_app", "instances": "1", "wait_ready": true, "autorestart": false }] }
两种方式都能实现python -m my_app的启动效果,选你觉得顺手的就行。
内容的提问来源于stack exchange,提问作者Endogen
相关产品推荐
相关产品推荐

