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の接続はそうではないため、ENV
Github Actionsが接続を確立するときに変数を設定するコマンドは呼び出されません。