在 RHEL6/CentOS6 上,新贵的方式是什么:
chkconfig add my-svc
chkconfig my-svc on
解释:我已经编写了一个 /etc/init/xvc0.conf 作业。我可以做
启动 xvc0
在 CLI 上,但重启后 initctl list 给了我
...
xvc0 stop/waiting
...
所以我需要一种方法将我的工作插入到启动新贵序列中。
(顺便说一句,在研究这个问题时,我发现(Ububtu)帖子建议将作业创建为 /etc/event.d/xvc0。这似乎是无效的 - 启动 xvc0 给出未知。发生了什么?那么 /etc/event.d 的用途是什么?)
干杯,阿尔夫
编辑
虽然这不是我的问题的直接答案,但我发现以下内容:
如果在 xvc0.conf 中我使用指令:
在运行级别 [2345] 上启动 在运行级别 [016] 上停止
而不是普通手写:
start on runlevel 2
start on runlevel 3
...
stop on runlevel 0
...
启动时启动该作业
我发现了指向(极其令人困惑的)指令的指针:
在停止 rc 时启动 RUNLEVEL=[2345] 在启动 rc 时停止 RUNLEVEL=[016]
它们也用于 prefdm.conf 作业,并且似乎也能工作,但方式与前者有微妙的不同(不明白如何不同),并且基本上搞乱了我想要做的事情(即在 /dev/xvc0 上启动 agetty)。
即便如此,上述问题仍然存在——为了实现自动启动而编辑脚本(以及使用一种语法相当不透明的语言)对我来说似乎比较不方便。
答案1
在工作本身中使用:
start on runlevel [2345]
stop on runlevel [016]
而不是普通手写:
start on runlevel 2
start on runlevel 3
...
stop on runlevel 0
...
具有在启动时启动作业的效果。可能的原因:每个“启动”都会覆盖前一个(而不是添加到它)。
至于从 CLI 更改或记录作业的启动/停止, 阿拉 chkconfig,这似乎是不可能的(如果你问我,这是一个很大的缺陷)。其他细节问题没有得到解决,但请参阅@MichaelHampton 对我的问题的评论,了解为什么这种做法无论如何都是毫无意义的(至少在 RH 世界中)。
答案2
我会设置我希望服务启动的运行级别
chkconfig --level 345 my-svc on
答案3
我认为没有办法从命令行控制 upstart。我initctl
在谷歌上搜索时没有看到 CentOS 6.x 以外的任何内容。你唯一的选择似乎是编辑 upstart 配置文件。