我在MacOS Catalina上。我试图运行一个cron作业,该作业会生成一个带有Windows的命名tmux会话。这是crontab -l
:
* * * * * cd /Users/dev/project; ./start.sh; ./poll 2>> /tmp/cron.out
但是我看不到与tmux ls
的会话。在我的错误日志中cat /tmp/cron.out
./poll: line 3: tmux: command not found
./poll: line 5: tmux: command not found
这是我正在运行的脚本。我为用户安装了tmux,它可以正常工作。当我正常执行poll
时,它就可以正常工作。
这里是start.sh
:
#!/bin/bash
tmux kill-session -t collect
tmux new -s "collect" -d ./stuff
如果在常规终端中运行tmux
,它将搜索$PATH
变量以找到正确的文件夹。
cron
执行的脚本与您的用户没有共享相同的环境$PATH
变量,因此该脚本找不到可执行文件。
您可以将$PATH
添加到脚本中,如下所示:
#!/bin/bash
PATH=/usr/local/bin
tmux kill-session -t collect
tmux new -s "collect" -d ./stuff
但是我想使用完整路径在您的情况下更具可读性!
在$PATH
上阅读有关unix.stackexchange的更多信息