gcloud compute ssh --command 标志不起作用
gcloud compute ssh --command flag not working
我正在使用来自计算引擎 vm1 的 google 的 compute ssh 命令来连接另一个项目的 vm2。当我尝试连接 --command 标志时出现问题。 shell 命令未执行,但已建立 ssh 连接。但是我可以在 vm2 的进程中看到 bash 命令作为 pid =xxxx 'bash -c sudo su && service nginx stop && source /home/x/bin/activate && python example.py'
当我从 vm1 终止 ssh 命令时,bash 命令立即在 vm2 上启动。我无法弄清楚是什么导致了这个问题。
sudo gcloud compute ssh --project=project_name vm_name --zone=zone --command='sudo su && service nginx stop && source /home/x/bin/activate && python example.py'
OS: ubuntu 18.04
该命令集不起作用。您正在接近它,就好像您是 运行 在终端内执行命令一样,在这种情况下:
sudo su
(会给你一个 root shell 并且所有后续命令都会 运行 作为 root)
service nginx stop
(你是 root)
source /home/x/bin/activate
(你是 root)
python example.py
(你是 root)
当您尝试使用 &&
链接您的命令时,它 运行 是第一个命令起作用后的下一个命令,并且所有命令实际上都是 运行,因为您:
sudo su
(运行和你一样,成功退出后触发下一条命令)
service nginx stop
(如你)
- 等(如你)
所以最终发生的事情是你获得了根 shell 然后什么都没有。除非它(干净地)退出,否则您不会 运行 链中的下一个命令,所以您正在等待,因为根 shell 也在等待。正如@DazWilkin 上面提到的,你实际上应该做的是删除 sudo su
(你不需要根 shell,无论如何你不能在那里做任何事情)并在你的其他命令前加上sudo
而不是这样他们每个人都 运行 具有更高的权限。
我正在使用来自计算引擎 vm1 的 google 的 compute ssh 命令来连接另一个项目的 vm2。当我尝试连接 --command 标志时出现问题。 shell 命令未执行,但已建立 ssh 连接。但是我可以在 vm2 的进程中看到 bash 命令作为 pid =xxxx 'bash -c sudo su && service nginx stop && source /home/x/bin/activate && python example.py' 当我从 vm1 终止 ssh 命令时,bash 命令立即在 vm2 上启动。我无法弄清楚是什么导致了这个问题。
sudo gcloud compute ssh --project=project_name vm_name --zone=zone --command='sudo su && service nginx stop && source /home/x/bin/activate && python example.py'
OS: ubuntu 18.04
该命令集不起作用。您正在接近它,就好像您是 运行 在终端内执行命令一样,在这种情况下:
sudo su
(会给你一个 root shell 并且所有后续命令都会 运行 作为 root)service nginx stop
(你是 root)source /home/x/bin/activate
(你是 root)python example.py
(你是 root)
当您尝试使用 &&
链接您的命令时,它 运行 是第一个命令起作用后的下一个命令,并且所有命令实际上都是 运行,因为您:
sudo su
(运行和你一样,成功退出后触发下一条命令)service nginx stop
(如你)- 等(如你)
所以最终发生的事情是你获得了根 shell 然后什么都没有。除非它(干净地)退出,否则您不会 运行 链中的下一个命令,所以您正在等待,因为根 shell 也在等待。正如@DazWilkin 上面提到的,你实际上应该做的是删除 sudo su
(你不需要根 shell,无论如何你不能在那里做任何事情)并在你的其他命令前加上sudo
而不是这样他们每个人都 运行 具有更高的权限。