title: How I should run my Golang process in background?
body: <p>This question is not strictly programming related, but for sure important for programmers.</p>
  
  <p>I wrote a simple smtp server, when I run it from console all is fine, except it is blocking the command line.</p>
  
  <p>I know I can run it via</p>
  
  <pre><code>nohup ... &amp;
  </code></pre>
  
  <p>or via screen / tmux etc</p>
  
  <p>But the question is, how should I implement my program it runs in the background and it will be a pleasure for a system administrator to set it up and manage the process ?</p>
  
  <p>Some guys with far more experience than me, at <a href="https://groups.google.com/forum/?fromgroups=#!topic/golang-nuts/othxUDO-EoE" rel="noreferrer">golang-nuts</a>, wrote, they don't use fork etc, and use some "wrapper" in form from monit etc.</p>
  
  <p>The target platform is Debian based, all other stuff on the box are init.d based.</p>
  
  <p>Any good resources for that topic or sources of a well written example project ?</p>