Linux系统中Shell如何执行一个非系统自带的命令?

我想在Shell脚本中执行一条pm2管理器的命令,这是我从npm包管理器中下载的一个node的项目管理器,手动执行Shell脚本就可以,但是我把它添加到任务调度中去就不行了,这是为什么?

Shell脚本路径

Shell脚本内容

手动执行没问题,问题就是在于添加到任务调度中自动执行就不行了,这是为什么?

任务调度中的列表,一点反应都没有

crond服务是正在运行中的

为什么会提示这个,我明明有这个命令啊

求大神解答,刚学Linux不久,请多多指教。

阅读 2.4k
2 个回答

调度的任务环境和普通shell是不同的,你需要先保证相应环境是正确的,才能正确调用执行,或者加一层命令调用的包装(比如再外面写一个专门执行的脚本,引入构建好基本同于普通shell的运行环境,再运行真实命令)

把 pm2 的路径写全吧。

cron 里很多环境变量跟普通的 shell 不一样,比如 $PATH 。来 shell 里可以找得到,在 cron 里执行不一定能找到。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题