Как я могу начать идти сервер постоянно?
У меня проблема с моим сервером 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; убедитесь, что все ваши записи ведутся через библиотеку журналов, ...)