如何将pm2与使用readline进行命令行输入的nodejs应用程序一起使用?

时间:2017-10-01 14:42:45

标签: node.js readline pm2

我有一个nodejs应用程序,它使用本机节点readline来获取命令行输入。使用pm2启动应用程序时,此命令行输入不可用。任何想法如何解决这个问题?除了使用systemd,并自己创建一个init脚本,我没有看到出路。

2 个答案:

答案 0 :(得分:1)

如果你查看pm2网站,他们会清楚地提到以下一行:Advanced, production process manager for Node.js。因此,在这种情况下使用它是不必要的,因为所有pm2都启动你的“节点”进程并允许你管理它,简单的方法是在启动进程时使用命令行参数

例如:

我自己使用commander来实现此目的。它管理我的所有命令行参数(你可以看到它的用法)。和pm2我使用它如下:

pm2 start server.js --name production -- --env dev -p 3458

--之前注意--env,它用于将pm2参数与您要提供给流程的参数分开

p.s。

PM2的使用比这更复杂,在流程管理方面,我自己将其用于生产级别部署。如果你想从用户每次 s /他启动你的应用程序时获取输入,那么你应该坚持只使用node命令

答案 1 :(得分:0)

使用pm2附加您的过程,您将看到realine clearline和cursorTo可以按预期工作。

例如7是您的pm2进程ID

pm2 attach 7