Как остановить golang? И как не запускать сразу в daemon в ubuntu?

Для остановки приложения на языке Go есть несколько способов в зависимости от того, как запущено приложение.

1. Если приложение запущено из командной строки, вы можете просто нажать Ctrl + C на клавиатуре. Это отправит сигнал SIGINT в операционную систему, которая освободит ресурсы и закроет приложение.

2. Если приложение запущено, как служба или в виде демона, вы можете получить идентификатор процесса (PID) приложения и использовать команду kill или killall в терминале для его завершения. Например, если PID вашего приложения - 12345, вы можете выполнить следующую команду:

   kill 12345

Это отправит сигнал SIGTERM приложению, что приведет к его завершению.

3. Если у вас есть необходимость принудительно завершить приложение, вы можете использовать команду kill -9 или killall -9. Например:

   kill -9 12345

Это отправит сигнал SIGKILL, который гарантированно приведет к завершению приложения. Однако следует быть осторожным при использовании этой команды, так как она может привести к потере данных или иным нежелательным последствиям.

Чтобы запустить приложение на языке Go и не трансформировать его непосредственно в демон, вы можете использовать утилиту nohup (no hang up). nohup перенаправляет вывод приложения в файл nohup.out, а также игнорирует сигналы SIGHUP, что позволяет приложению продолжать работу после закрытия терминала.

Для запуска приложения с помощью nohup, введите следующую команду:

nohup ./your_app &

Теперь, когда вы закроете терминал, приложение будет продолжать работать. Если вы хотите остановить выполнение приложения, вам потребуется использовать один из вышеописанных способов завершения процесса.