■環境
Ubuntu15.04
Nginx1.9
Uwsgi2.0
Cronolog1.6.2
SystemdでNginxを起動した時に、Cronologが立ち上がるようにしたいです。
[Unit] Description=The NGINX HTTP and reverse proxy server After=syslog.target network.target remote-fs.target nss-lookup.target [Service] Type=forking ExecStartPre=/usr/local/nginx1.9/sbin/nginx -t ExecStartPre=/bin/bash -c "/bin/cat /var/log/nginx1.9/sample/pipe/access | /usr/bin/cronolog -S /var/log/nginx1.9/sample/access.log /var/log/nginx1.9/sample/access/%Y/%m/%d.log &" ExecStart=/usr/local/nginx1.9/sbin/nginx ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/bin/kill -s QUIT $MAINPID PrivateTmp=true [Install] WantedBy=multi-user.target
- mkfifoでパイプを作っています。
なぜかExecStartが実行された時に、ExecStartPreで走らせたCronologのプロセスが終了しているようです。
systemctl start nginxを叩くと、処理が終わらず返ってこなくなります。
返ってこない間に手動で、ExecStartPreの内容を実行するとうまくNginxも起動されます。
自作のシェルを作成し、そちらをExecStartで実行しないとダメでしょうか?
UwsgiにもCronologを利用しているのですが、直接パイプが使えずserviceファイルだけで完結できなくて困っています。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2016/03/11 15:27