我在 Ubuntu 中创建了一个 upstart 脚本,认为对于 Debian 来说也是一样的。但 Debian 没有/etc/init
Ubuntu 有的文件夹。我去了暴发户下载页面并看到他们有软件包,做了一个apt-get install upstart
,但它要求删除 sysvinit,我知道这会/可能会搞砸我的系统。那么如何让我的 Ubuntu 脚本在 Debian 上运行呢?
答案1
这不是直接关于 Debian 与 Ubuntu 的问题,而是关于系统初始化与暴发户。 Debian 默认为 SysVinit;您可以安装 Upstart,但您需要知道自己在做什么,并且在考虑将其安装到生产服务器上之前应该熟悉它。尽管理论上可以同时安装两者,但只有其中一个作为进程号 1 运行,但 Debian 并不直接支持这一点。
Upstart 比 SysVinit 更年轻并且具有更多功能,这解释了为什么您不能只获取 Upstart 服务描述并将其提供给 SysVinit。你必须写一个脚本为/etc/init.d
。基本上,该脚本需要查看其第一个参数 ( $1
) 和start
,stop
或restart
按指示查看服务。
如果您使用 Upstart 事件来确定何时启动脚本,则必须使用一些其他方法。 Upstart 从许多不同来源收集事件;你可以从 Upstart 获取的任何地方获取触发器,Upstart 在这方面只是一种方便的方法,无需在许多不同的地方和协议中寻找触发器。
答案2
之所以要删除,sysvinit
是因为这两者是冲突的。另请注意,这sysvinit
被认为是必不可少的(阅读:不要删除,除非你知道你在做什么)。
“aptitude show upstart”的部分输出:
Conflicts: startup-tasks, system-services, sysvinit, upstart-compat-sysv, upstart-job
如果您有能力给系统浇水,请继续安装它。