如何使Golang Web服务器在后台运行?
我最近完成了 Wiki网站开发教程
(http://golang.org/doc/articles/wiki/)。我玩得很开心,我想用net
/ http包做更多的实验。
但是,我注意到从控制台运行Wiki时,该Wiki将接管控制台。如果我关闭控制台终端或停止进程,CTRL+Z则服务器将停止。
如何使服务器在后台运行?我认为该术语在守护程序中运行。
我正在Ubuntu 12.04上运行它。谢谢你的帮助。
回答:
简单/可用的东西优先
如果您不费吹灰之力就需要启动脚本,则可以使用该upstart服务。请参见相应的手册页和/etc/init/*.conf示例。创建了这样的过程之后,您可以通过调用以下命令来启动服务器
service myserver start如果您想要更多功能,例如特定的限制或权限管理,可以尝试xinetd。
使用外壳
您可以像这样开始您的过程:
nohup ./myexecutable &该&告诉shell在后台启动命令,保持它在任务列表。在某些外壳上,如果父外壳使用HANGUP信号退出,则作业将被杀死。为避免这种情况,可以使用该nohup命令启动命令,该命令将放弃HANGUP信号。
但是,如果被调用的进程重新连接了HANGUP信号,这将不起作用。
确实可以确定,您需要从Shell的作业列表中删除该过程。对于两个众所周知的外壳,可以通过以下方式实现:
重击:
./myexecutable &disown <pid>
zsh:
./myexecutable &!回答:
通常,外壳程序会输出进程的PID,然后可以使用kill命令将其终止,以停止服务器。如果您的外壳未打印PID,则可以使用
echo $!直接在执行后。这将打印派生过程的PID。
以上是 如何使Golang Web服务器在后台运行? 的全部内容, 来源链接: utcz.com/qa/431460.html

