centos7解决pm2 flush用crontab没有正常执行的问题,手动执行没问题

2 篇文章 0 订阅
1 篇文章 0 订阅

当时我写了一个pm2 flush清理日志的shell脚本,是crontab定时任务,每次执行都会打印过程到某一文件,看到日志里面所有命令都执行了就是不执行pm2 fliush这个命令,当然了手动执行shell那是一点问题都没

其实有如下情况
1 在crontab -e 里面 没有使用绝对路径,什么意思呢?就是全路径
例如: ./data/logs.sh 或者 sh /data/logs.sh —> 为了保证一定会执行其实正确应该是
/usr/bin/sh /data/logs.sh

2 也有可能是权限问题, 最好加上chmod +x 这个权限,或者chmod 755 logs.sh
7: rwx — 满权限
4: r - 读
2: w - 写
1: x - 执行
3 环境变量问题,crontab 找不到这个命令 这就要说到pm2 fliush 这个命令了
whereis pm2 路径一定要在/usr/bin/下 否则crontab是无法找到 pm2这个命令的,如果不在一定要软连接到/usr/bin/目录下 :
ln -s /usr/local/lib/node/bin/node /usr/bin/node
在这里插入图片描述
pm2命令已经在/usr/bin/目录下了然后再来执行为什么看到日志还是没有执行,这就很奇妙了,经过排查,其实是这样的 ps -ef | grep pm2 看到
pm2的命令始终还是发生在nodejs命令身上,进程其实还是由node执行的只不过是pm2实现统一管理
所以 node命令也要在/usr/bin/下

然后crontab定时任务就正常了

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值