首页 > 解决方案 > 如何运行产生 tmux 会话的 cron 作业?(苹果系统)

问题描述

我在 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

标签: bashcrontmuxmacos-catalina

解决方案


如果您tmux在常规终端中运行,它将搜索$PATH变量以找到正确的文件夹。

执行的脚本与您的用户cron不共享相同的环境$PATH变量,因此该脚本找不到可扩展的。

您可以将其添加$PATH到您的脚本中,如下所示:

#!/bin/bash

PATH=/usr/local/bin

tmux kill-session -t collect

tmux new -s "collect" -d ./stuff

但我想在你的情况下使用完整路径更具可读性!

阅读有关$PATHunix.stackexchange 的更多信息


推荐阅读