Для моего приложения Go мне нужно запустить несколько вещей в следующем порядке:
- Приложение Compile Go
go install appName
- Запустите nrsc на исполняемом файле моего приложения Go
./nrsc <path to executable> <path to static sources>
- Запустить исполняемый файл приложения
./appName -config <path to file>
Моя IDE позволяет мне запускать Bash Script. Сценарий, показанный ниже, пользователь - мое имя пользователя, но подвергнут цензуре для stackoverflow:
#!/bin/bash
go install appName
/home/user/go/bin/nrsc /home/user/go/bin/appName /home/user/go/src/appName/static
/home/user/go/bin/appName -config /home/user/go/src/appName/config/local.conf
Этот скрипт работает и хорошо работает при запуске в моем терминале из любого каталога. Все команды также работают при вводе индивидуально непосредственно в терминале. Приложение Go не производит никакого вывода в терминале, и оно не должно, просто сидит на пустой строке в моем терминале, пока я не нажму CTRL + C, чтобы выйти из него. Но он по-прежнему работает на локальном хосте через определенный порт в моем браузере, как и должно быть.
Когда скрипт запускается через мою IDE, он просто завершается с кодом 1. Но, если я помещаю операторы echo для целей отладки до и после каждой строки, они все печатаются успешно (поэтому каждая строка выполняется), и сценарий завершается с кодом 0. Более того, если я поставлю sleep 10
в конце скрипта, он определенно достигнет этого оператора и перейдет в спящий режим, даже если оператор находится после строки, которая должна запускать мое приложение.
Поскольку приложение не выдает никаких результатов, я понятия не имею, почему оно не работает. Как я могу отладить это?