Похоже, вы не настроили значение NETMASK или PREFIX для своего интерфейса. Хотя часто это не объясняется четко, правильный адрес на самом деле требует этой информации.
Если вы больше не можете удаленно подключиться через SSH, Telnet и т. д. к ВМ, вам потребуется войти в консоль системы:
После входа в консоль вам необходимо войти в систему и изменить файл конфигурации сети, включив в него все необходимые параметры. Пожалуйста, обратитесь к документации PhotonOS (man-страниц, вероятно, достаточно ), чтобы быть уверенным, но я считаю, что как минимум требуется значение NETMASK.
Вас сбивают с толку две функции.
Во-первых, в случае сбоя exec
оболочка просматривает содержимое файла, который вы пытаетесь запустить, и, если он выглядит как сценарий оболочки, интерпретирует его самостоятельно. Пустой файл выглядит как сценарий оболочки. Вы можете увидеть это, запустив strace -f./qux.go
, который показывает ошибку exec
, и изменивqux.go
:
$ echo echo Failed Golang > qux.go
$./qux.go
Failed Golang
Другая особенность заключается в том, что флаг O
не работает с каскадными интерпретаторами:в вашем случае, qux.go
нуждается в интерпретаторе, но сам интерпретатор нуждается в интерпретаторе, /bin/sh
и таким образом, необходимо интерпретировать два файла, test.sh
и qux.go
, но только один окончательный исполняемый файл может быть обработан в режиме O
. Следующие работы:
$ cat <<EOF > /tmp/test.c
#include <stdio.h>
int main(int argc, char **argv) {
puts("Golang");
return 0;
}
EOF
$ make /tmp/test
cc /tmp/test.c -o /tmp/test
$ echo ':golang:E::go::/tmp/test:OC' | sudo tee /proc/sys/fs/binfmt_misc/register
:golang:E::go::/tmp/test:OC
$./qux.go
Golang