linux - 在启动时运行多个 npm 脚本

标签 linux centos boot

我有一个运行快速应用程序和 react 应用程序的服务器。我需要在启动时启动这两个应用程序。
所以我在 rc.local 上添加了两行,但似乎只有第一行运行,第二行没有。为什么会这样,我该如何解决?

最佳答案

就像在任何其他脚本中一样,第二个命令只会在第一个命令完成后执行。当第一个命令应该永远运行时,这可能不是您想要的。

如果您希望第二个命令在第一个命令完成之前执行,并且如果您希望脚本在第二个命令完成之前退出,那么您必须安排这些命令在后台运行。

所以,至少,而不是

my-first-command
my-second-command

你要:

my-first-command &
my-second-command &

但是,最好做一些更复杂的事情,除了将命令置于后台之外,还将命令的工作目录置于文件系统的根目录,断开命令的输入与控制台的连接,提供其标准输出和标准错误流到syslog服务(通常会将该数据附加到 /var/log/syslog 中)并保护其免受意外信号的影响。喜欢:

( cd / && nohup sh -c 'my-first-command 2>&1 | logger -t my-first-command &' </dev/null >/dev/null 2>&1 )

对于第二个命令也是如此。

行尾的额外重定向将保留 nohup避免发出不需要的信息消息并创建未使用的 nohup.out文件。您可能想离开最终 2>&1直到您确定命令的其余部分是正确的并且按照您希望的方式运行。当您到达显示的唯一消息是 nohup: redirecting stderr to stdout 时那么你可以恢复2>&1摆脱该消息。

关于linux - 在启动时运行多个 npm 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61618333/

相关文章:

linux - 如何在同一台服务器上显示另一个端口网站的nginx 80数据?

r - 在 Linux 上的 Azure 上部署 R (centos 8.2.2004)

linux - 如何使用 find 命令仅打印出名称和文件大小?

linux - BASH getopts 可选参数

c++ - gdbserver 跟随 child

Php7-fpm 未在 Centos7 中运行

linux - 如何调试间歇性失败的 upstart 脚本?

android - Genymotion 虚拟设备似乎正在运行,但似乎卡在引导中

Android:启动时启动服务?

linux - 从 "ps"获取完整结果