微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从 bat 文件启动 node 和 pm2 应用程序

如何解决从 bat 文件启动 node 和 pm2 应用程序

我有一个在 node 上运行的聊天机器人应用程序,由于 pm 2,我让它始终处于活动状态。

我想改进我启动应用程序的方式。与其从控制台运行 start 命令,不如双击 .bat 文件

我正在尝试开发 bat 文件,但我缺乏知识。

感谢您的帮助。

/**
 * to make sheet height full screen
 * */
override fun onStart() {
    super.onStart()
    val metrics = displayMetrics()
    requireActivity().windowManager?.defaultdisplay?.getMetrics(metrics)
    binding.rootContainer.layoutParams.height = metrics.heightPixels
    binding.rootContainer.requestLayout()
}

我开发的这个bat文件不起作用。我知道我没有调用变量,因为我不知道如何包含它,因为我总是执行 pm2 start app.js 命令。

我的应用程序不使用 8080 和其他端口,因为同一个库允许我建立连接,并且使用 pm 2 我保持它始终处于活动状态。

解决方法

将启动命令添加到您的 package.json 以使用 pm2 启动您的应用程序,然后使用您的 bat 文件直接将其与 npmyarn 一起运行,无论您的默认包管理器是什么

编辑:

这里是一个 bash 脚本示例,但批处理的概念是相同的

#!/bin/bash

## detect operating system machine so we can setup some environment variables
UNAME="$(uname -s)"
case "${UNAME}" in
    Linux*)     OS='linux';;
    Darwin*)    OS='mac';;
    CYGWIN*)    OS='cygwin';;
    MINGW*)     OS='mingw';;
    *)          OS="UNKNOWN:${UNAME}"
esac

## if OS is Ubuntu (IE Production Box) set the path of variables
if [ $OS == 'linux' ]
then
  YARN=/usr/bin/yarn
  PM2=/usr/bin/pm2
fi
## if OS is Mac (IE Development Box) set the path of variables
if [ $OS == 'mac' ]
then
  YARN=/usr/local/bin/yarn
  PM2=/usr/local/bin/pm2
fi

## run the app
cd /var/www/application || exit
$YARN run productionStart

$PM2 save

exit $?

这是我们从 package.json 使用的用于在 mac/linux 上启动应用程序的代码行

"productionStart": "pm2 start ecosystem.config.js --env=production",

有关使用 pm2 使用生态系统文件启动应用程序的更多信息,请参阅文档 here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。