加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

通过crontab创建tmux会话时,在`tmux new session -d`命令中指定.

发布时间:2020-12-14 01:53:52 所属栏目:Linux 来源:网络整理
导读:我想要实现的目标是什么? 我正在尝试让crontab杀死之前的tmux会话并创建一个新的tmux会话(具有特定的teamocil设置). crontab运行的简单bash脚本: #!/bin/bashtmux kill-session;tmux new-session -d "source /home/qa/.bash_profile;teamocil settings;";
我想要实现的目标是什么?
我正在尝试让crontab杀死之前的tmux会话并创建一个新的tmux会话(具有特定的teamocil设置).

crontab运行的简单bash脚本:

#!/bin/bash
tmux kill-session;
tmux new-session -d "source /home/qa/.bash_profile;teamocil settings;";

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

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

#!/bin/bash
source /home/qa/.bash_profile
tmux kill-session;
tmux new-session -d "teamocil settings;";

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

解决方法

在crontab行中直接在脚本路径之前放置路径到配置文件,这将使脚本更灵活,以备将来使用.

解释http://www.voidcn.com/article/p-kqmbzohf-btx.html

很好的答案https://unix.stackexchange.com/questions/27289/how-can-i-run-a-cron-command-with-existing-environmental-variables

另一个非常好的答案https://unix.stackexchange.com/questions/6790/executing-a-sh-script-from-the-cron

Recomendation:你可能在某处回答问题.人们只需要搜索它.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读