linux su命令引号,linux – monit从启动程序命令中删除引号

我正在调试monit启动/停止程序语句.在我的/etc/monit.conf文件中,我的启动程序语句如下所示:

check process node with pidfile /home/ec2-user/blah/node.pid

start program = "/bin/su -c 'export APP_ENV=development; /home/ec2-user/local/bin/node /home/ec2-user/example.com/current/api.js start &> /tmp/monit.out ' "

stop program = "/bin/su -c '/home/ec2-user/local/bin/node /home/ec2-user/example.com/current/api.js stop'""

我在shell中测试过

$sudo su

# env -i PATH=/bin:/usr/bin:/sbin:/usr/sbin /bin/sh

# /bin/su -c '/usr/bin/env APP_ENV=development; /home/ec2-user/local/bin/node /home/ec2-user/example.com/current/api.js start &> /tmp/monit.out '

运行它会在/tmp/monit.out文件中返回正确的输出:

Starting nodejs daemon...

nodejs daemon started. PID: 16408

但是当我运行sudo monit -v monitor节点时,它会显示一个不同的命令,除了内部单引号被删除之外:

The service list contains the following entries:

Process Name = node

Pid file = /home/ec2-user/blah/node.pid

Monitoring mode = active

Start program = '/bin/su -c export APP_ENV=development; /home/ec2-user/local/bin/node /home/ec2-user/example.com/current/api.js start &> /tmp/monit.out ' timeout 30 second(s)

Stop program = '/bin/su -c /home/ec2-user/local/bin/node /home/ec2-user/example.com/current/api.js stop' timeout 30 second(s)

Existence = if does not exist 1 times within 1 cycle(s) then restart else if succeeded 1 times within 1 cycle(s) then alert

Pid = if changed 1 times within 1 cycle(s) then alert

Ppid = if changed 1 times within 1 cycle(s) then alert

System Name = system_ip-xx-xx-xx-xx.ec2.internal

Monitoring mode = active

我在monit文档中找不到任何相关内容.文档here似乎是最终的参考,但没有通过源代码,我不知道下一步该怎么做.

我的命令工作完美,没有删除引号,所以我只需要解决这个问题.欢迎所有想法和可能的修复.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值