vague memory

うろ覚えを無くしていこうともがき苦しむ人の備忘録

Upstart の自動起動無効化

世の中systemdなので無用の長物になりそうですがメモ。
公式に記載がある通りです。

Ubuntuだと14.10以降は override が利用できるようですが、 CentOS6 や Amazon Linux の場合、 提供されている upstart のバージョンが古く、 override は利用できないようです。

公式

With Upstart 0.6.7, to stop Upstart automatically starting a job, you can either:

  • Rename the job configuration file such that it does not end with ".conf".
  • Edit the job configuration file and comment out the "start on" stanza using a leading '#'.

version 1.3 以上では、override ファイルが利用可能

With Upstart 1.3, you can make use of an "override file" and the manual stanza to achieve the same result in a simpler manner [31]:

# echo "manual" >> /etc/init/myjob.override

Note that you could achieve the same effect by doing this:

# echo "manual" >> /etc/init/myjob.conf

公式の Override の説明リンクが切れてますが、 アーカイブがありました。 upstart.at が既に無いようです。

検証

Amazon Linux の ssm-agent が upstart での起動なので、そちらで検証してみます。

  • 環境
$ grep PRETTY_NAME /etc/os-release
PRETTY_NAME="Amazon Linux AMI 2018.03"
$ initctl --version
initctl (upstart 0.6.5)

a) リネーム

効きました。

$ ls -l /etc/init/amazon-ssm-agent.*
-rw-r--r-- 1 root root 760  8月  3  2018 /etc/init/amazon-ssm-agent.conf_

b) コメントアウト

効きました。

$ diff /etc/init/amazon-ssm-agent.conf.org /etc/init/amazon-ssm-agent.conf
17c17
< start on (runlevel [345] and started network)
---
> #start on (runlevel [345] and started network)
$

c) overrideファイルへ "manual"

効きません。

$ ls -l /etc/init/amazon-ssm-agent.*
-rw-r--r-- 1 root root 760  8月  3  2018 /etc/init/amazon-ssm-agent.conf
-rw-r--r-- 1 root root   7  3月 15 01:10 /etc/init/amazon-ssm-agent.override
$ sudo cat /etc/init/amazon-ssm-agent.override
manual
$
  • reboot 後
$ uptime
 01:11:17 up 0 min,  1 user,  load average: 0.08, 0.02, 0.01
$ ps -ef | grep [s]sm-agent
root      2266     1  0 01:11 ?        00:00:00 /usr/bin/amazon-ssm-agent
$

d) confファイルへ "manual"

効きました。

$ diff /etc/init/amazon-ssm-agent.conf.org /etc/init/amazon-ssm-agent.conf
22a23
> manual
$