スタートアップ時にメタデータキー "startup-script"を使用してtmuxを起動しようとしています。起動時にtmux new-session -d -s toto
を実行しようとしていますが、後でtmux ls
を実行すると、tmuxセッションが表示されません。Google Compute Engine - スタートアップスクリプトでtmuxを開始
私はここで何が欠けていますか?
スタートアップ時にメタデータキー "startup-script"を使用してtmuxを起動しようとしています。起動時にtmux new-session -d -s toto
を実行しようとしていますが、後でtmux ls
を実行すると、tmuxセッションが表示されません。Google Compute Engine - スタートアップスクリプトでtmuxを開始
私はここで何が欠けていますか?
あなたがここに欠落している可能性があり、いくつかの前提条件があります。
プログラムがイメージにインストールする必要があります。標準イメージには、最小のプログラムセットがインストールされています。
起動スクリプトは、インスタンスが起動されるたびに実行され、root
として実行されます。したがって、起動スクリプトから直接tmux
を実行すると、新しいtmux
セッションがルートユーザーとして起動します。これは主にあなたが望むものではありません。
このすべてを取ることができます(私はgcloud
を用いた例を与えてくれたが、あなたにもREST APIやクラウドコンソールに同様のロジックを適用することができます)、これは動作します、と言った
この起動スクリプトを使用してケア:
(hash tmux 2>/dev/null || (apt-get update && sudo apt-get -y install tmux)) && sudo -H -u USERNAME tmux new-session -d -s toto
上記のコマンドが既にインストールされていない場合はtmuxはインストールしてtoto
という名前の新しいデタッチtmuxのセッションを開始します。
あなたは、インスタンスの作成時に、この起動スクリプトを設定することができます。
gcloud compute instances create VM_NAME --metadata 'startup-script=(hash tmux 2>/dev/null || (apt-get update && sudo apt-get -y install tmux)) && sudo -H -u USERNAME tmux new-session -d -s toto' --zone ZONE_NAME --project PROJECT_NAME
または既存のVMのために、いつでも、後でメタデータを更新:VM上
gcloud compute instances add-metadata vm-1 --metadata 'startup-script=(hash tmux 2>/dev/null || (apt-get update && sudo apt-get -y install tmux)) && sudo -H -u USERNAME tmux new-session -d -s toto' --zone ZONE_NAME --project PROJECT_NAME
あなたがすることができ、常にre-run the startup scriptを( VMを再起動せずに):
$ sudo google_metadata_script_runner --script-type startup
完全なドキュメント約Startup scriptsがここにあります。
ありがとうございます、それは魅力のように機能しました。 – Paradoxeuh