![gcloud sshを使用してバックグラウンドでプロセスを実行する方法[閉じる]](https://linux33.com/image/138298/gcloud%20ssh%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%83%90%E3%83%83%E3%82%AF%E3%82%B0%E3%83%A9%E3%82%A6%E3%83%B3%E3%83%89%E3%81%A7%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%5B%E9%96%89%E3%81%98%E3%82%8B%5D.png)
2つのgcp Linux仮想マシンがあり、あるインスタンスから別のインスタンスにsshingして、次のコマンドを使用してプロセスを実行しています。コマンド#1を実行すると正常に動作しますが、バックグラウンドコマンド#2のオプションを使用してプロセスを実行すると、コマンドは結果を表示しません。
gcloud compute ssh -zone {Zone-Name} {vm1} -- 'cd /app/bin && ./clearcache && nohup ./startWeblogicAdmin >> admin.log' ==== This works fine
gcloud compute ssh -zone {Zone-Name} {vm2} -- 'cd /app/bin && ./clearcache && nohup ./startWeblogicAdmin >> admin.log &' === This does not gets executed.
バックグラウンドでプロセスを開始する方法が必要です。 VM2でこのSSHセッションからログアウトする場合
答え1
gcp linuxについてよくわからないので、シェルは "&"を使用してバックグラウンドでコマンドを実行するため、2番目の例は機能しないようです。ただし、コマンドを指定すると、sshはシェルを起動せずにコマンドを実行してから終了します。
したがって、私の仮定が正しい場合は、リモートシステムにログインし、目的のチャット言語などを使用してコマンドを実行するか、コマンド全体をローカルシステムのバックグラウンドに送信する必要があります。このような:
nohup gcloud compute ssh -zone {Zone-Name} {vm2} -- 'cd /app/bin && ./clearcache && nohup ./startWeblogicAdmin >> admin.log' &