【发布时间】: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 获得帮助。
-
试试immortal
immortal -u www your-command
标签: bash shell permission-denied monit