小编SCo*_*yle的帖子

通过crontab创建tmux会话时,在`tmux new session -d`命令中指定.bash_profile源路径不起作用

我想要实现的目标是什么?我正在尝试让crontab杀死之前的tmux会话并创建一个新的tmux会话(具有特定的teamocil设置).

crontab运行的简单bash脚本:

#!/bin/bash
tmux kill-session;
tmux new-session -d "source /home/qa/.bash_profile;teamocil settings;";
Run Code Online (Sandbox Code Playgroud)

问题我有吗?手动运行此脚本可以正常工作,但是当通过crontab运行时,它只有在至少2个其他tmux会话预先存在时才会起作用,即它会将会话作为脚本的一部分终止,如果没有会话,则crontab将不会创建第一个会话.如果在杀死会话后还有另一个会话可用,则脚本可以正常工作.

到目前为止的调查结果?我发现如果我将源声明为bash脚本的一部分,而不是在tmux new sessions命令中,那么它可以正常工作.为什么会这样?请参阅以下修改过的脚本:

#!/bin/bash
source /home/qa/.bash_profile
tmux kill-session;
tmux new-session -d "teamocil settings;";
Run Code Online (Sandbox Code Playgroud)

理解为什么这会有所帮助,帮助我更新其他脚本并且不再犯这个错误,这将是非常有帮助的.任何可以在此上散发的光都是值得赞赏的.

bash cron tmux

6
推荐指数
1
解决办法
633
查看次数

标签 统计

bash ×1

cron ×1

tmux ×1