TVヘッドエンドサービスを監視するMonitスクリプトがあります。プログラムを起動するには、スタートコマンドを使用したいと思います。
start program = "/etc/init.d/tvheadend start
&& /usr/bin/python /root/antik_epg/antik_xmltv.py
| /usr/bin/socat - UNIX-CONNECT:/etc/tvheadend/epggrab/xmltv.sock"
しかし、何らかの理由で Monit はパイプに続くコマンドを無視します。ただ起きてtvheadend
実行されます/usr/bin/python /root/antik_epg/antik_xmltv.py
。
それは実行されません/usr/bin/socat - UNIX-CONNECT:/etc/tvheadend/epggrab/xmltv.sock
すべてのコマンドを実行するには?カスタムスクリプトを実行しようとしています。
start program = "/bin/ash -c '/root/tvheadend_start.sh'"
しかし、結果は同じです。
このコマンドは bash から直接完全に実行されます。
ご協力ありがとうございます。
答え1
解決策が見つかりました。私はネームドパイプの代わりにネームドパイプを使用しました。
start program = "/bin/ash -c /root/tvheadend_start.sh"
/root/tvheadend_start.shスクリプトから:
#!/bin/sh
/etc/init.d/tvheadend start
/usr/bin/python /root/antik_epg/antik_xmltv.py > /root/pipe &
/usr/bin/socat - UNIX-CONNECT:/etc/tvheadend/epggrab/xmltv.sock < /root/pipe &