Как я могу начать идти сервер постоянно?

У меня проблема с моим сервером Go.

Когда я подключаюсь к своему NAS через SSH и делаю ./gogs webСервер запускается. Но когда я закрываю соединение SSH, сервер останавливается.

Как я могу запустить свой сервер Go навсегда?

2 ответа

У вас есть скрипты в gogs, позволяющие запускать сервер как демон:

  • scripts/init/debian/gogs (недавно исправлено с ошибкой 519)
  • scripts/init/centos/gogs

Это позволило бы процессу остаться, пока сессия закрыта.

У вас есть другие варианты в выпусках 172.

Это не специфичная для Go проблема, происходит то, что программа Go по-прежнему подключена к вашему терминалу, и когда вы выходите из системы, ядро ​​запускает SIGHUP для каждого двоичного файла, все еще подключенного к этому терминальному сеансу.

Ваш лучший вариант, вероятно, использовать nohup ./gogs web,

Второй лучший вариант - переписать main так, чтобы он перехватывал и обрабатывал SIGHUP, не давая ему убить вашу программу. Однако для этого требуется правильно обработать несколько вещей (вам действительно нужно закрыть stdin, stdout и stderr; убедитесь, что все ваши записи ведутся через библиотеку журналов, ...)

Другие вопросы по тегам