Crontab 失败 shell 脚本 if 语句

问题描述 投票:0回答:1

我有一个 shell 脚本,它通过首先检查它是否正在运行来执行 python 程序

但是,问题是 if 语句的第一个块似乎失败了。 shell脚本确实可以手动工作

这就是我的 shell 脚本的样子:

PATH=/opt/conda/bin:/opt/conda/condabin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

if [ $(/bin/pgrep -f "miner_nbeats.py") ]; then
    echo "script running"
else
    echo "script not running"
    exec tmux new-session -d \; send-keys "source activate python310 && cd /home/putsncalls23/miner_nbeats.py" Enter
fi

这就是我的

/etc/crontab
文件中的内容:

SHELL=/bin/bash
PATH=/opt/conda/bin:/opt/conda/condabin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

*/5 *    * * *  root    putsncalls23 -l /home/putsncalls23/run_script.sh

有人知道我在这里做错了什么吗?

谢谢

python linux cron
1个回答
0
投票

我可以建议一些改变吗?首先,只需检查退出代码,而不是替换该进程的标准输出。接下来,您的“cd”命令尝试 cd 到文件。我想你想要这样的东西:

PATH=/opt/conda/bin:/opt/conda/condabin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

if /bin/pgrep -f "miner_nbeats.py" > /dev/null; then
    echo "script not running"
    exec tmux new-session -d \; send-keys "source activate python310 && cd /home/putsncalls23 && miner_nbeats.py" Enter
else
    echo "script running"
fi
© www.soinside.com 2019 - 2024. All rights reserved.