# Restarting a Go Program Without Downtime

DevFeed: [Restarting a Go Program Without Downtime](<https://devfeed.tech/articles/restarting-a-go-program-without-downtime-29661.md>)

Original publisher: [Read original article](<https://goteleport.com/blog/golang-ssh-bastion-graceful-restarts/>)

Author: info@goteleport.com (Russell Jones)

Published: 2018-06-08T00:00:00Z

Content type: tutorial

Language: en

Sources: [Teleport](<https://devfeed.tech/sources/teleport.md>)

Topics: [Go Language](<https://devfeed.tech/topics/go-language.md>), [systems](<https://devfeed.tech/topics/systems.md>), [Processes](<https://devfeed.tech/topics/processes.md>), [Unix](<https://devfeed.tech/topics/unix.md>), [ssh](<https://devfeed.tech/topics/ssh.md>)

Tags: [developers](<https://devfeed.tech/tags/developers.md>), [go](<https://devfeed.tech/tags/go.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [processes](<https://devfeed.tech/tags/processes.md>), [ssh](<https://devfeed.tech/tags/ssh.md>), [systems](<https://devfeed.tech/tags/systems.md>), [tcp](<https://devfeed.tech/tags/tcp.md>), [tls](<https://devfeed.tech/tags/tls.md>)

## AI overview

This article explains approaches for gracefully restarting Go applications without downtime. It compares socket reuse and socket duplication, discusses their tradeoffs, and presents a standalone working sample based on the traditional Unix fork/exec model.

## Source excerpt

This post discusses approaches to gracefully restart a Go application with a working sample, useful for developers and SREs who build services written in Go.