init.d 失败 tomcat

init.d fails with tomcat

我在 ubuntu 服务器上使用 tomcat,我正在尝试使用 monit 使其始终保持活动状态。 但我的问题是 monit 不起作用,因为

/etc/init.d/tomcat start

引发此错误:

touch: cannot touch '/opt/tomcat/latest/logs/catalina.out': Permission denied
/opt/tomcat/latest/bin/catalina.sh: 467: /opt/tomcat/latest/bin/catalina.sh: cannot create /opt/tomcat/latest/logs/catalina.out: Permission denied

如果我将权限 777 授予 catalina.out,tomcat 将不起作用。但是,如果我将权限更改为 755,我将无法从 init.d

开始

我该如何解决?

这是我的 "monit" 代码:

check process tomcat with pidfile "/opt/tomcat/apache-tomcat-9.0.27/temp/tomcat.pid"
      start program = "/etc/init.d/tomcat start"
      stop program = "/etc/init.d/tomcat stop"
      if failed port 8080 for 5 cycles then restart

谢谢

默认情况下,Monit 以 root 身份执行,但 Permission denied 消息可能表明您的 Monit 不是 运行 root。

我看到两个解决方案:

  1. 以 root 身份执行 Monit
  2. 在你的初始化脚本之前添加一个/usr/bin/sudo,比如
start program = "/usr/bin/sudo /etc/init.d/tomcat start"