Dave Mateer Asked: 2009-06-26 18:45:18 +0800 CST2009-06-26 18:45:18 +0800 CST 2009-06-26 18:45:18 +0800 CST Ubuntu8.10 - 注销后保持服务运行 772 我正在运行 Ubuntu8.10 Desktop .. 作为服务器。当我注销机器时,所有服务,例如 apache、ssh 等......停止。 有没有办法让这些服务一直运行? 问候 linux ubuntu apache-2.2 10 个回答 Voted mibus 2009-06-26T20:12:13+08:002009-06-26T20:12:13+08:00 通常,这些服务将在后台运行,在第一次登录之前开始,并在用户注销后继续。Ubuntu Desktop 真的是 Ubuntu Server 加上 X 和 Gnome :) 你是如何开始服务的? 最好的办法是确保您通过初始化脚本启动服务。参见例如: http://www.debuntu.org/how-to-manage-services-with-update-rc.d Convict 2009-06-26T20:14:22+08:002009-06-26T20:14:22+08:00 你的机器运行在哪个运行级别? 在 /etc/inittab 中,查找该行 id:x:initdefault: 其中 x 是您的默认运行级别。 可能是您在运行级别 1 运行。在该运行级别,您的守护程序未配置为自动运行。 将默认运行级别设置为多用户运行级别之一(在我的 Debian 机器上为 2-5)。在我的机器上,运行级别 2 会导致系统自动启动守护进程(apache、sshd 和其他)。 Best Answer Not Now 2009-06-27T22:28:32+08:002009-06-27T22:28:32+08:00 我认为正在发生的事情是,NetworkManager 仅在他登录时才连接他的网络连接。 你应该试试: 右键单击 Networkmanager 图标 -> 编辑连接 -> 根据需要从有线或无线选项卡中选择连接,然后单击编辑。 确保选择了“自动连接”。 Johan 2009-06-27T22:50:20+08:002009-06-27T22:50:20+08:00 您不想以用户身份开始此类事情,因此我建议您遵循此问题中的其他建议。 但是如果你想做一个小测试,在你做一个永久的解决方案之前,你可以使用 disown 命令。 要快速了解 disown 的内容,您可以尝试以下操作: 启动一个新的终端窗口 启动 xclock (或类似的东西) 关闭终端窗口,并注意 xclock 与终端一起关闭。 然后做同样的事情 启动一个新的终端窗口 时钟& 否认 关闭终端窗口,并注意 xclock 仍然存在。 /约翰 Martin P. Hellwig 2009-06-27T00:21:53+08:002009-06-27T00:21:53+08:00 除非您以用户身份启动守护程序并且守护程序将它们附加到用户标准输出/输入,否则它们应该在后台运行,而不会打扰谁登录或未登录。那么你实际上做了什么不会让守护进程在后台运行呢? KPWINC 2009-06-26T19:48:59+08:002009-06-26T19:48:59+08:00 查看“屏幕”命令。注销后屏幕将继续运行。 这是一个例子: "screen -S [session name]" - 如果您多次使用 screen,则会话名称很有用。 执行您想要继续运行的任何命令/程序。 按 CTRL-A 然后按 CTRL-D(分离) 注销(或其他),您可以稍后再回来执行“screen -ls”。您应该会看到列出的之前的会话。 “screen -r [session name]”将恢复该会话。 希望这可以帮助。 KPWINC 2009-06-26T19:51:37+08:002009-06-26T19:51:37+08:00 另一种方法可能是创建一个新用户: 管理 --> 用户和组 --> 添加用户 创建您的新用户,然后以该用户而不是您自己的身份运行您希望的任何程序。有些人还喜欢给予这种使用较少的特权,这可能会增加您的安全性。 还要查看运行级别。 jay_dubya 2009-06-26T19:51:40+08:002009-06-26T19:51:40+08:00 这应该由运行级别处理。你有链接到 /etc/init.d/apache2 的 simlink /etc/rc5.d/sapache 吗? Dennis Williamson 2009-06-27T01:17:06+08:002009-06-27T01:17:06+08:00 您可能没有/etc/inittab文件,因为 Ubuntu 使用Upstart并且默认情况下不会创建文件。 您可以使用该runlevel命令检查您的运行级别。它打印的最后一个字符应该是“2”或更高。/etc/inittab如果文件不存在,您可以创建该文件。控制默认运行级别的行应如 Convicts answer 中所示。 如果您使用 Ubuntu 包管理器(apt-get、Synaptic 等)安装了服务,则应该已经安装了正确的启动脚本。有关更多信息,请参阅 mibus 的答案。 DarwinSurvivor 2009-07-11T21:39:53+08:002009-07-11T21:39:53+08:00 我相信 Bash 是正确的。 但是,如果您想在登录之前(在启动时)让您的计算机登录到网络,还要检查“系统设置”(Intrepid)或“所有用户可用”(Jaunty)。这将允许任何用户连接到连接,包括系统启动时。
通常,这些服务将在后台运行,在第一次登录之前开始,并在用户注销后继续。Ubuntu Desktop 真的是 Ubuntu Server 加上 X 和 Gnome :)
你是如何开始服务的?
最好的办法是确保您通过初始化脚本启动服务。参见例如:
http://www.debuntu.org/how-to-manage-services-with-update-rc.d
你的机器运行在哪个运行级别?
在 /etc/inittab 中,查找该行
其中 x 是您的默认运行级别。
可能是您在运行级别 1 运行。在该运行级别,您的守护程序未配置为自动运行。
将默认运行级别设置为多用户运行级别之一(在我的 Debian 机器上为 2-5)。在我的机器上,运行级别 2 会导致系统自动启动守护进程(apache、sshd 和其他)。
我认为正在发生的事情是,NetworkManager 仅在他登录时才连接他的网络连接。
你应该试试:
右键单击 Networkmanager 图标 -> 编辑连接 -> 根据需要从有线或无线选项卡中选择连接,然后单击编辑。
确保选择了“自动连接”。
您不想以用户身份开始此类事情,因此我建议您遵循此问题中的其他建议。
但是如果你想做一个小测试,在你做一个永久的解决方案之前,你可以使用 disown 命令。
要快速了解 disown 的内容,您可以尝试以下操作:
然后做同样的事情
/约翰
除非您以用户身份启动守护程序并且守护程序将它们附加到用户标准输出/输入,否则它们应该在后台运行,而不会打扰谁登录或未登录。那么你实际上做了什么不会让守护进程在后台运行呢?
查看“屏幕”命令。注销后屏幕将继续运行。
这是一个例子:
"screen -S [session name]" - 如果您多次使用 screen,则会话名称很有用。
执行您想要继续运行的任何命令/程序。
按 CTRL-A 然后按 CTRL-D(分离)
注销(或其他),您可以稍后再回来执行“screen -ls”。您应该会看到列出的之前的会话。
“screen -r [session name]”将恢复该会话。
希望这可以帮助。
另一种方法可能是创建一个新用户:
管理 --> 用户和组 --> 添加用户
创建您的新用户,然后以该用户而不是您自己的身份运行您希望的任何程序。有些人还喜欢给予这种使用较少的特权,这可能会增加您的安全性。
还要查看运行级别。
这应该由运行级别处理。你有链接到 /etc/init.d/apache2 的 simlink /etc/rc5.d/sapache 吗?
您可能没有
/etc/inittab
文件,因为 Ubuntu 使用Upstart并且默认情况下不会创建文件。您可以使用该
runlevel
命令检查您的运行级别。它打印的最后一个字符应该是“2”或更高。/etc/inittab
如果文件不存在,您可以创建该文件。控制默认运行级别的行应如 Convicts answer 中所示。如果您使用 Ubuntu 包管理器(apt-get、Synaptic 等)安装了服务,则应该已经安装了正确的启动脚本。有关更多信息,请参阅 mibus 的答案。
我相信 Bash 是正确的。
但是,如果您想在登录之前(在启动时)让您的计算机登录到网络,还要检查“系统设置”(Intrepid)或“所有用户可用”(Jaunty)。这将允许任何用户连接到连接,包括系统启动时。