gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 09:01:06 25 4
gpt4 key购买 nike

我想达到什么目的?我正在尝试让 crontab 终止之前的 tmux session 并创建一个新的 tmux session (具有特定的 teamocil 设置)。

crontab 运行的简单 bash 脚本:

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

我有什么问题?手动运行这个脚本可以正常工作,但是当通过 crontab 运行时,它只会在至少预先存在 2 个其他 tmux session 的情况下工作,即它会作为脚本的一部分终止 session ,如果没有 session ,crontab 将不会创建第一个 session 。如果在终止一个 session 后还有另一个 session 可用,则该脚本有效。

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

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

了解这为何会有所不同、帮助我更新其他脚本而不是再次犯这个错误真的很有帮助。任何可以阐明这一点的信息都将受到赞赏。

最佳答案

直接在 crontab 行中将配置文件的路径放在脚本的路径之前,这将使脚本在将来的使用中更加灵活。

说明 https://serverfault.com/questions/337631/crontab-execution-doesnt-have-the-same-environment-variables-as-executing-user

很好的回答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

推荐:某处可能有你问题的答案。只需搜索一下即可。

关于bash - 通过 crontab 创建 tmux session 时,在 `tmux new session -d` 命令中指定 .bash_profile 源路径不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49261261/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com