GitHub 작업 ssh 로그인이 내 환경 변수를 설정하지 않는 이유는 무엇입니까?

GitHub 작업 ssh 로그인이 내 환경 변수를 설정하지 않는 이유는 무엇입니까?

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의 연결은 그렇지 않으므로 ENVGithub Actions가 연결을 설정할 때 변수를 설정하는 명령이 호출되지 않습니다.

관련 정보