Я пытаюсь выполнить команду в определенных интервалах.
pm2 restart appname
Выполнение этого самостоятельно работает. Затем я добавляю его к сценарию удара.
#!/bin/bash
pm2 restart appname
Выполнение работ сценария удара: bash scriptname.sh
Затем я добавляю его к своему crontab:
* * * * * /usr/local/crontab-scripts/scriptname.sh >> /var/log/cronlog.log 2>&1
Это дает мне ошибку:/usr/local/crontab-scripts/scriptname.sh: line 4: pm2: command not found
Я не делаю ни одного из этого как корень, у меня есть pm2, глобально установленный, я поместил в свой сценарий whereis pm2
и это зарегистрировало корректный путь /usr/local/bin/pm2
. Затем я пытался иметь свой CD сценария к тому пути прежде, чем выполнить pm2, никакое различие.
Я вне идей здесь.
При вызове приложений или команд из сценариев или заданий КРОНА это помогает обстоятельно объяснить весь путь приложения.
В Вашем случае я попытался бы переписать Ваш сценарий к:
#!/bin/bash
/usr/local/bin/pm2 restart appname
Однако это походит на излишество, и Вы могли бы также просто звонить pm2
непосредственно от Вашего crontab:
* * * * * /usr/local/bin/pm2 restart appname >> /var/log/cronlog.log 2>&1