运行 一个命令在三个主目录中的三个节点脚本
Run three Node scripts in three home directories in one command
因此,作为 Elastic Beanstalk 部署的一部分,我想 运行 来自一个根脚本的三个应用程序的三个服务器。我的设置如下所示:
/package.json
/directory1/keystone.js
/directory2/keystone.js
/directory3/keystone.js
在 package.json
中,我正在尝试编写一个 npm start
来启动所有这三个,但是 运行ning node directory1/keystone.js
会在 node directory1/keystone.js
中启动服务器这个根目录,而不是 directory1
目录,它会破坏应用程序中的所有路径。因此,在 运行 服务器文件之前,我实际上需要 cd
进入每个目录。我最近的尝试是这样的:
(cd directory1 && node keystone.js) & (cd directory2 && node keystone.js) & (cd directory3 && node keystone.js)
但它只是 运行 第一个。诀窍是这些服务器中的每一个都占用 shell 和一个请求监视器,所以我需要让它们 运行 在后台没有输出,这样我才能继续执行下一个命令。我在每次调用之间尝试了一个带有 cd ..
的版本,但监视器似乎仍然阻止了任何进一步的命令。我如何在单个 shell 中 运行 顺序(或并行)命令而不被 shell 占用的请求监视器之类的东西阻塞?
运行 这在 Win10 上进行开发,但最终会 运行 在 Ubuntu.
(cd directory1 && node keystone.js) & (cd directory2 && node
keystone.js) & (cd directory3 && node keystone.js)
这只适用于第一个命令,因为此时您位于目录 1 中。您将需要返回上一级,然后 cd 进入 directory2。另外,如果你需要在后台 运行 节点命令,请在末尾添加“&”。像这样:
(cd directory1 && node keystone.js &) & (cd ../directory2 && node
keystone.js &) & (cd ../directory3 && node keystone.js &)
您也可以尝试使用“;”进行链接特点。像这样:
cd directory1; node keystone.js &; cd ../directory2; node keystone.js
&; cd ../directory3; node keystone.js &;
因此,作为 Elastic Beanstalk 部署的一部分,我想 运行 来自一个根脚本的三个应用程序的三个服务器。我的设置如下所示:
/package.json
/directory1/keystone.js
/directory2/keystone.js
/directory3/keystone.js
在 package.json
中,我正在尝试编写一个 npm start
来启动所有这三个,但是 运行ning node directory1/keystone.js
会在 node directory1/keystone.js
中启动服务器这个根目录,而不是 directory1
目录,它会破坏应用程序中的所有路径。因此,在 运行 服务器文件之前,我实际上需要 cd
进入每个目录。我最近的尝试是这样的:
(cd directory1 && node keystone.js) & (cd directory2 && node keystone.js) & (cd directory3 && node keystone.js)
但它只是 运行 第一个。诀窍是这些服务器中的每一个都占用 shell 和一个请求监视器,所以我需要让它们 运行 在后台没有输出,这样我才能继续执行下一个命令。我在每次调用之间尝试了一个带有 cd ..
的版本,但监视器似乎仍然阻止了任何进一步的命令。我如何在单个 shell 中 运行 顺序(或并行)命令而不被 shell 占用的请求监视器之类的东西阻塞?
运行 这在 Win10 上进行开发,但最终会 运行 在 Ubuntu.
(cd directory1 && node keystone.js) & (cd directory2 && node keystone.js) & (cd directory3 && node keystone.js)
这只适用于第一个命令,因为此时您位于目录 1 中。您将需要返回上一级,然后 cd 进入 directory2。另外,如果你需要在后台 运行 节点命令,请在末尾添加“&”。像这样:
(cd directory1 && node keystone.js &) & (cd ../directory2 && node keystone.js &) & (cd ../directory3 && node keystone.js &)
您也可以尝试使用“;”进行链接特点。像这样:
cd directory1; node keystone.js &; cd ../directory2; node keystone.js &; cd ../directory3; node keystone.js &;