На этот вопрос уже есть ответ здесь:
У меня есть установка и cron, чтобы проверить, занят ли порт или свободен, и если он свободен, он отправляет и отправляет электронное письмо, а затем запускает golang api служба
send mail работает правильно, но сервер api не запускается
далее идет мой файл crontab
*/2 * * * * /home/ubuntu/sh/projectrun.sh
Он запускает файл projectrun.sh каждые 2 минуты, следующий мой код в этом файле sh
#!/bin/bash
lsof -i :8080 | grep LISTEN || echo "Not listening" | curl "http://mysiteurl.com/serverlog/?s=cron"
lsof -i :8080 | grep LISTEN || echo "Not listening" | tmux new-session -d -s bkapi3_session 'bkapi'
первая строка выполняется правильно, так как я регулярно получаю письма, но вторая команда не работает, она работает, если я запускаю эту команду непосредственно с консоли, например
lsof -i :8080 | grep LISTEN || echo "Not listening" | tmux new-session -d -s bkapi3_session 'bkapi'
Не уверен, в чем проблема и как решить
Попробуйте использовать полный путь sh
, например -
*/2 * * * * /bin/sh /home/ubuntu/sh/projectrun.sh