【问题标题】:Monit running script as non-root user getting "permission denied"以非 root 用户身份监控运行脚本,获得“权限被拒绝”
【发布时间】:2023-08-30 07:11:02
【问题描述】:

我正在使用 Monit 来确保我的一个应用程序始终在运行。 Monit 以 root 身份运行,但我的目标是以“myuser”而不是 root 身份运行应用程序。所以我使用如下配置:

check process myprocess with pidfile "/home/myuser/monitoring/myprocess.pid"
    start program = "/home/myuser/scripts/myprocess.sh start"
    as uid 1000 and gid 1000
    stop program = "/home/myuser/scripts/myprocess.sh stop"
    as uid 1000 and gid 1000

现在,当我以 myuser 身份登录时,导航到 "/home/myuser/scripts" 并运行 ./myprocess.sh start ,应用程序启动没有问题。

但是,当我让 monit 执行此操作时,程序无法启动,并且日志显示 sh 文件中 mkdir 函数的 permission denied

由于我指定了 uid 和 gid 1000(我从 shell 命令 id 获得),monit 不应该像我从 shell 一样运行它吗?我是否遗漏了配置中的任何内容?

【问题讨论】:

  • 我投票决定将此问题作为题外话结束,因为有关通用计算硬件和软件的问题对于 Stack Overflow 来说是题外话,除非它们直接涉及主要用于编程的工具。您可以通过Super User 获得帮助。
  • 试试immortalimmortal -u www your-command

标签: bash shell permission-denied monit


【解决方案1】:

我遇到了同样的错误,并通过在我试图在脚本中修改的文件/目录中指定绝对路径来修复它。

【讨论】:

    最近更新 更多