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。これら2つのログイン方法の違いは何ですか?同じユーザーでログインしています。私は.zshrc次のように環境を設定しました。

export ENV=TENCENT

ベストアンサー1

私はzshの専門家ではありませんが、zshマニュアルページで次の参照を見つけました。

シェルがログインシェルの場合は、/etc/zprofile からコマンドを読み、次に $ZDOTDIR/.zprofile から読み込みます。その後、シェルが対話型の場合は、まず/etc/zshrcからコマンドを読み、次に$ ZDOTDIR/.zshrcから読み込みます。

該当するセクションの前後に詳細があり、マニュアルページの他のセクションには、$ZDOTDIRデフォルト値がユーザーのホームディレクトリと指定されています。

デフォルトでは、zshシェルはログインセッションが非対話型のときにファイル内のコマンドを呼び出しません~/.zshrc。手動のSSH接続は対話型ですが、Github Actionsの接続はそうではないため、ENVGithub Actionsが接続を確立するときに変数を設定するコマンドは呼び出されません。

おすすめ記事