2017-08-19 8 views
1

ここで私は複数のexecコマンドを実行しようとしましたが、私は電子メールの出力を得ていますが、smsは出力していません。両方のexecコマンドを実行する方法はありますか?upstartスクリプトで複数の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 

答えて

0

あなたが(彼らは無期限にブロックしていないと仮定)&&でそれらを連結試すことができます。

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 

私の意見ではよりエレガントです。

+0

ありがとう、このddintの仕事、私はこれを試しました、スクリプト exec bash -c /root/test/script.sh 終了スクリプト...... >>>ここで私は2つのコマンドをscript.shに入れます – Satyaki

+0

あなたは何を得ているのですか?ファイル名にスペースがあるように見えますが、引用しましたか? – Yigal

+0

ログファイルにエラーはなく、/ var/log/upstart/kafkaファイルでもデータがありません。私は/ tmp/sms.outと/tmp/email.outにログファイルを取得しようとしました。ここでは、email.outだけが他のものではなく読み込まれます。 – Satyaki

関連する問題