linux - 如何在 upstart 脚本中使用多个 exec 命令?

标签 linux upstart

这是我尝试运行多个 exec 命令的方法,但我得到的是电子邮件输出,但不是短信。有没有办法运行 both exec 命令?

description "starts a kafka consumer for email and sms "
respawn

start on runlevel [2345]
stop on runlevel [!2345]

env FOUNDATION_HOME=/opt/home/configs
env VIRTUAL_ENV=/opt/home/virtualenvs/analytics


# run as non privileged user
setuid xxx
setgid xxx

console log

chdir /opt/xxx


exec  stdbuf -oL /opt/xxx/virtualenvs/analytics/bin/python -m yukon.pipelinerunnerexternal /opt/xxx/configs/datastream.pheme_sms  > /tmp/sms.out 2>&1

exec  stdbuf -oL /opt/xxx/virtualenvs/analytics/bin/python -m yukon.pipelinerunnerexternal /opt/xxx/configs/datastream.pheme_email > /tmp/email.out  2>&1

post-start script
    PID=`status kafka_upstart | egrep -oi '([0-9]+)$' | head -n1`
    echo $PID > /var/tmp/kafka_upstart.pid
end script

post-stop script
    rm -f /var/tmp/kafka_upstart.pid
end script

最佳答案

您可以尝试将它们与 && 连接起来(假设它们不会无限期地阻塞):

exec  stdbuf -oL /opt/xxx/virtualenvs/analytics/bin/python -m yukon.pipelinerunnerexternal /opt/xxx/configs/datastream.pheme_sms  > /tmp/sms.out 2>&1 && stdbuf -oL /opt/xxx/virtualenvs/analytics/bin/python -m yukon.pipelinerunnerexternal /opt/xxx/configs/datastream.pheme_email > /tmp/email.out  2>&1

或者将命令放在一个单独的脚本中,kafkalaunch.sh,然后运行脚本:

exec kafkalaunch.sh

我认为哪个更优雅。

关于linux - 如何在 upstart 脚本中使用多个 exec 命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45776124/

相关文章:

Linux 命令快捷方式变量

linux - 定义自定义 emacs find-grep 快捷方式

java - 我的 java 代码在 linux 上运行正常,但在 Windows 上运行不正常

docker - 如何获得一个 Upstart 脚本来正确管理运行 docker 镜像?

node.js - Upstart | Ubuntu | Node |无法在脚本 block 内运行多个 exec

linux - 如何在 c shell 中编写脚本,以便执行 `cd` 也会自动触发 `ll` 或 `ls`

linux - 函数定义

linux - Ubuntu 16.04 登录循环

ruby-on-rails - 用 upstart 脚本守护 sidekiq - 不工作

linux - 无法在 systemd 中为/dev 创建自定义挂载点