我最近完成了Wiki web development tutorial(http://golang.org/doc/articles/wiki/).我玩得很开心,我想用net/http包做更多的实验.

然而,我注意到,当我从控制台运行wiki时,wiki接管了控制台.如果我关闭控制台终端或使用CTRL+Z停止进程,则服务器停止.

如何让服务器在后台运行?我认为这个术语是在守护进程中运行.

我在Ubuntu 12.04上运行这个.谢谢你的帮助.

推荐答案

Simple / Usable things first

如果你想要一个不费吹灰之力的开始脚本,你可以使用upstart服务.有关示例,请参见相应的手册第页和第/etc/init/*.conf页.在创建了这样一个过程之后

service myserver start

如果你想要更多的功能,比如特定的限制或权限管理,你可以试试xinetd个.

Using the shell

你可以这样开始你的过程:

nohup ./myexecutable &

&告诉shell在后台启动命令,并将其保留在作业(job)列表中.

但是,如果被调用的进程重新连接挂断信号,这将不起作用.

确实,您需要从shell的工作列表中删除该流程.

猛击:

./myexecutable &
disown <pid>

zsh:

./myexecutable &!

杀了你的背景工作

通常,shell打印进程的PID,然后可以使用kill命令终止该进程,以停止服务器.如果shell没有打印PID,可以使用

echo $!

直接在处决后.这将打印Forking 过程的PID.

Linux相关问答推荐

将UTC字符串日期时间转换为毫秒UTC时间戳

pci_user_write_config_word在哪里实现?

Docker运行错误:exec/app/backend/server:没有这样的文件或目录

加载ELF64头文件为什么会导致分段错误?

使用 ansible 验证 firewalld 配置

在 Linux 上的 std::threads 中创建子进程

如何在 gcc 搜索路径上防止多个版本的 Boost?

使用 awk 将多行文本转换为 CSV

问题:Virtio rpmsg 总线 virtio0:收到的 msg 没有收件人 - 在 Yocto Hardknott - imx7d-pico

PHP factor 30 从 Linux 到 Windows 的性能差异

Vagrant chicken-and-egg:与 uid = apache 用户共享文件夹

让 Tk 看起来像一个原生 Linux 应用程序

PuTTY:更改默认 SSH 登录目录

execv() 和 fork() 的时间浪费

为 django 项目安装 memcached

如何在python中找到文件或目录的所有者

/var 中有什么?

如何等待第一个命令完成?

Bash 将 awk 的输出捕获到数组中

Linux shell 中的排序和唯一性