目前我需要从upstart文件启动java应用程序并使用monit监视它,但需要一个pid文件。
我将应用程序用户设置为wwww-data:adm using
setuid www-data
setgid adm
然后
script
echo $$ > /var/run/logstash.pid
exec java -jar logstash.jar agent -f logstash.conf --log logstash.stdout
end script
错误日志显示
/proc/self/fd/9: 2: /proc/self/fd/9: cannot create /var/run/logstash.pid: Permission denied
如何编写pid文件?
PS。我使用了start-stop-daemon,它告诉“无法创建Java虚拟机”
答案 0 :(得分:1)
我终于通过在 / var / run 中添加了www-data:adm所拥有的文件夹来解决它,并将pid文件放在那里。
答案 1 :(得分:0)
/ run和/ var / run中的文件和目录在重新启动时不会持久。
解决方法 - 我们可以通过每次系统启动时通过init脚本创建一个子目录来解决这个问题。
我猜monit没有内置的解决方案来解决这个问题。 如果有人出现,我想知道理想的解决方案。