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