Как внедрить golang/beego в автозагрузку (systemd, upstart, supervisor) vps linux?
для systemd
юнит:$ systemctl --user cat test.service

# /home/admin/.config/systemd/user/test.service
[Unit]
After=local-fs.target network.target

[Service]
Type=simple
ExecStart=/home/admin/code/go/bin/test
Restart=on-failure
RestartSec=60
TimeoutSec=60

[Install]
WantedBy=default.targetAfter - после каких сервисов или их групп запускать юнит. В данном случае запускать не раньше чем будет смонтированна локальная файловая система  и доступна сеть.RestartSec - сколько секунд ждать между перезапуском юнит-сервиса(по умолчанию 100мс).TimeoutSec - сколько секунд ждать обработки start/stop запроса по истечении которых считать что процесс завершился с ошибкой (программа не успела поднятся/остановится за отведённое ей время).
автозагрузка и запуск:$ systemctl --user enable test.service
$ systemctl --user start test.service
статус:$ systemctl --no-pager --full --user status test.service
перезагрузка systemd для поиска новых или изменённых юнитов:$ systemctl --user daemon-reload
проделывается после изменения описания юнитов в процессе их работы, об этом также будет выведено сообщение(в конце) при описании статуса изменённого сервиса.
перезапуск web-сервера(после перекомпиляции):$ systemctl --user restart test.service
здесь test.service(юнит-сервис) и test(веб-сервер на go) принадлежат пользователю admin (/home/admin/.config/systemd/user/test.service). В бщем кому принадлежит и кто может работать с юнит-сервисом я уже писал в одном из постов.
п.с.
если пользователь находится на сервере то скорее всего вам еще понадобится перевести его статус в linger, то есть чтобы он всегда подымался при старте системы(как и root):# loginctl enable-linger <username>
сделал все, как Вы написали, в Вашем случае, у меня выдало такое сообщение
Failed to get D-Bus connection: Connection refused
еще попробовал по этому туториалу
в этом случае консоль пишет следующееroot@free:/opt# service listener status
● listener.service - Webhook
   Loaded: loaded (/etc/systemd/system/listener.service; enabled)
   Active: failed (Result: start-limit) since Fri 2016-08-26 20:46:12 EDT; 6s ago
  Process: 4536 ExecStart=/opt/listen (code=exited, status=217/USER)
 Main PID: 4536 (code=exited, status=217/USER)

Aug 26 20:46:12 free systemd[1]: Unit listener.service entered failed state.
Aug 26 20:46:12 free systemd[1]: listener.service holdoff time over, sche...t.
Aug 26 20:46:12 free systemd[1]: Stopping Webhook...
Aug 26 20:46:12 free systemd[1]: Starting Webhook...
Aug 26 20:46:12 free systemd[1]: listener.service start request repeated ...t.
Aug 26 20:46:12 free systemd[1]: Failed to start Webhook.
Aug 26 20:46:12 free systemd[1]: Unit listener.service entered failed state.
Hint: Some lines were ellipsized, use -l to show in full.
P.S. Я видимо мало спал, но ваш вариант работает. Вытащил из этого туториала команду, которая мне помогла
ввел systemctl daemon-reload
и ваш вариант загрузился. У меня остались косяки по поехавшему шаблону, но это мелочи и я все исправлю. Благодарю Вас за помощь!!! Если бы не Вы, сегодня писал бы под node.js 
странно, что второй вариант, что из примера выше, так и не работает, пишет тоже самое
я так и не понял в чем проблема была и как я ее исправил, если можете, объясните суть, чтобы до меня дошло, не хочу как-то тупо копировать код, чтобы просто работало.