2014-01-14 67 views
1

當前我需要從upstart文件啓動java應用程序並使用monit監視它,但需要一個pid文件。如何在upstart配置文件中設置uid後編寫pid文件

我設置應用程序的用戶是WWWW數據:ADM使用

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虛擬機」

回答

1

我終於通過添加一個由www-data:adm擁有的文件夾來解決這個問題/var/run並且把pid文件放在那裏。

+1

但是'/ var/run'在重啓時不會丟失? –

0

重新啓動時,/ run和/ var/run中的文件和目錄不是永久的。

解決方法 - 我們可以通過每次系統啓動時通過init腳本創建一個子目錄來解決這個問題。

我猜monit沒有內置的解決方案來解決這個問題。 我想知道這個的理想解決方案,如果有人出現。

相關問題