ssh 명령을 사용하여 원격 서버에 로그인하고 명령을 Linux VM-0-16-centos 3.10.0-1160.31.1.el7.x86_64 #1 SMP Thu Jun 10 13:32:12 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
실행 하면 다음과 같은 환경 변수를 찾을 수 있습니다.env
ENV=TENCENT
하지만 GitHub Actions를 통해 로그인하면 다음과 같습니다.
- name: Restart server
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.BINGQIAN_HOST }}
username: ${{ secrets.BINGQIAN_USER }}
password: ${{ secrets.SSH_BINGQIAN_PASSWORD }}
script: |
cd /opt/apps/pydolphin
nohup /opt/apps/pydolphin/tencent-cloud-start-app.sh &> schedule.log &!
sleep 20
Environmnet 구성을 찾을 수 없습니다 ENV=TENCENT
. 이 두 로그인 방법의 차이점은 무엇입니까? 동일한 사용자로 로그인하고 있습니다. 저는 .zshrc
다음과 같이 환경을 설정했습니다.
export ENV=TENCENT
답변1
나는 zsh 전문가는 아니지만 zsh
매뉴얼 페이지에서 다음 참조를 찾았습니다.
쉘이 로그인 쉘인 경우 /etc/zprofile에서 명령을 읽은 다음 $ZDOTDIR/.zprofile에서 읽습니다. 그런 다음 셸이 대화형이면 먼저 /etc/zshrc에서 명령을 읽은 다음 $ZDOTDIR/.zshrc에서 읽습니다.
해당 섹션 전후에 더 많은 내용이 있으며 매뉴얼 페이지의 다른 섹션에는 $ZDOTDIR
기본값이 사용자의 홈 디렉토리라고 명시되어 있습니다.
기본적으로 zsh 쉘은 로그인 세션이 비대화형일 때 파일의 명령을 호출하지 않습니다 ~/.zshrc
. 수동 SSH 연결은 대화형이지만 Github Actions의 연결은 그렇지 않으므로 ENV
Github Actions가 연결을 설정할 때 변수를 설정하는 명령이 호출되지 않습니다.