新贵和流程替代

新贵和流程替代

所以我想在我的脚本节中使用以下内容:

forever -l >(tee $QW_LOG_DIR/webserver.log | logger -p user.info -t '[QW]') start webserver.js

然而,这是行不通的,因为:

  1. 这是 bash 语法,并且:

  2. >(...)构造在我实际创建之前创建了一个进程forever,因此 upstart 会跟踪错误的 pid。

    ...至少我这么认为,我是一个新手。

我的想法是,为了绕过这两个问题,我应该mkfifo在我的pre-start节中使用它,以便我可以在我的启动脚本中写入 fifo。

问题:

  1. 那是可行的方法吗?如果不是,那该怎么办?
  2. 如果是,那么我需要(tee | logger)“在后台”运行该部分,大概是在pre-start
  3. 再说一次,如果是这样,我该如何追踪它,并将其从我的诗节中删除post-end

答案1

如果您需要从 Upstart 调用 Bash 脚本,则可以将脚本放在文件中并通过以下exec节调用它:

exec /bin/bash /path/to/my-bash-script.sh

如果你在脚本的开头放置一个合适的shebang(#!/bin/bash)并使文件可执行,你甚至可以直接执行它:

exec /path/to/my-bash-script.sh

相关内容