shell 如何在屏幕分离模式下运行bashrc以进行调度

dm7nw8vv  于 2022-11-16  发布在  Shell
关注(0)|答案(1)|浏览(118)

我写了一个名为www.example.com的bash脚本testingb.sh,它运行
1.用于激活已创建myenv环境的bashrc文件

  1. python脚本。我的bash脚本(testingb.sh)保存在/home/susan/Newfolder/下,如下所示:
#!/bin/bash
source ~/.bashrc
python /home/susan/Newfolder/test.py

我的bashrc看起来像下面:

export http_proxy=http://server-ip:port
export https_proxy=http://server-ip:port
export no_proxy="localhost,svc,node1"
export PATH=$PATH:/opt/miniconda/bin
alias envactivate="source activate /anaconda_env/personal/myenv"
alias spython="/anaconda_env/personal/myenv/bin/python"

## >>> conda initialize >>>
## !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/anaconda_env/miniconda/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"

if [ $? -eq 0 ]; then
    eval "$__conda_setup"
else
    if [ -f "/anaconda_env/miniconda/etc/profile.d/conda.sh" ]; then
        . "/anaconda_env/miniconda/etc/profile.d/conda.sh"
    else
        export PATH="/anaconda_env/miniconda/bin:$PATH"

    fi
fi
unset __conda_setup
# <<< conda initialize <<<
conda activate /anaconda_env/personal/myenv

在crontab中,我编写了以下命令:

45 22 * * * cd /home/susan/Newfolder && screen -dmS "acaaa" && screen -S acaaa -p 0 -X stuff ./testingb.sh^M > /dev/null

但是在屏幕内部,由于权限被拒绝错误,无法运行bashrc文件。请参考以下内容:

./testingb.sh
$ /bin/sh: 1: ./testingb.sh: Permission denied

我想知道如何在crontab中以分离屏幕模式运行上面的bash脚本(testingb.sh)?谢谢。

chhkpiq4

chhkpiq41#

您可以测试以下示例并检查是否可以帮助您。您可以使用“screen”命令在分离状态下启动bash进程。例如:

screen -d -m bash -c "bashrc; while true; do echo 'Hello, world!'; sleep 1; done"

这将启动一个新的屏幕会话,在其中运行bashrc命令,然后执行一个无限循环,每秒打印“Hello,world!”。

相关问题