【问题标题】:How to write pid file after uid is set in upstart config file在新贵配置文件中设置uid后如何写入pid文件
【发布时间】:2014-01-14 02:06:20
【问题描述】:

目前我需要从 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 虚拟机”

【问题讨论】:

    标签: linux pid upstart


    【解决方案1】:

    我终于通过在 /var/run 中添加 www-data:adm 拥有的文件夹并将 pid 文件放在那里来解决它。

    【讨论】:

    • 但是/var/run在重启时不是丢失了吗?
    【解决方案2】:

    /run 和 /var/run 中的文件和目录在重新启动后不会保持不变。

    解决方法 - 我们可以通过在每次系统启动时通过初始化脚本创建一个子目录来解决这个问题。

    我猜 monit 没有内置的解决方案来解决这个问题。 如果有人出现,我想知道理想的解决方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-27
      • 2020-08-07
      相关资源
      最近更新 更多