如何在 Linux (Debian) 中将程序设置为服务但默认将其关闭?

如何在 Linux (Debian) 中将程序设置为服务但默认将其关闭?

当您安装 Alfresco 时,您可以选择是否将其安装为服务。

如果将其安装为服务,该服务会在启动时启动,但由于它使用 Tomcat,因此它太重了,无法作为后台程序保留。另外,它的停止时间比Apache要长很多。

因此,我想将其保留为服务,但默认将其设置为关闭,因此我需要做的就是输入sudo service alfresco start

虽然我可以将其设置为不作为服务并编写一两个 bash 脚本,但我想了解有关“服务”在 Linux 中如何工作的更多信息。 Apache 不是问题,但如果知道它的服务参数存储在哪里以及如何更改这些参数,那就太好了。

答案1

“一般”方法是

$ sudo update-rc.d -f servicename remove

删除服务名称从任何运行级别自动启动。

要重新启用默认设置,请执行以下操作

$ sudo update-rc.d servicename defaults

答案2

你可以使用sysv-rc-conf管理运行级别(配置哪些服务应该在哪些运行级别启动)。

这很简单:

  1. 安装它:sudo apt-get install sysv-rc-conf
  2. 运行:sudo sysv-rc-conf
  3. 将您的服务标记为在所需的运行级别上启动(2、3、4 和 5 是常规启动,0 是关闭,6 是重新启动)。使用键盘箭头进行导航并使用space按键切换复选框。

答案3

默认情况下,Debian 附带 SysVinit。哪些服务在哪些运行级别中执行是通过符号链接控制的/etc/initN.d(N = 0 到 6,其中 2–5 是正常运行级别;S 表示在引导时启动的服务)。看德米特里·瓦西利亚诺夫格特夫戴克有关配置这些符号链接的方法的答案。

我喜欢用file-rc包,它用一个简单的文本文件替换符号链接/etc/runlevel.conf

如果您要关闭大量服务,或者想要阻止某个服务在安装或升级时启动(Debian 上的一个已知问题),您可以定义本地服务启动策略。写一个脚本叫/usr/sbin/policy-rc.d实现了初始化脚本策略你的选择。有关详细信息,请参阅/usr/share/doc/sysv-rc/README.policy-rc.d您的系统。实施完整的策略需要一些工作,但您可以使简单的案例发挥作用;例如,如果脚本仅包含exit 101,则不会执行任何 init 脚本(这对于安装在 chroot 中的系统很方便)。

相关内容