insservの使い方

## insservの使い方

### insservとは

Debian系のOSなどで、使用する/etc/init.d/配下にあるファイルを、
OSが起動時に起動するデーモンとして登録するコマンド。

update-rc.dコマンドに代わって、最近のDebian系で用いられているらしい。
 
###  -r, --remove
デーモンを削除するオプション。

```
insserv -r deamon_name
```

###  -f, --force      
強制実行オプション。


```
insserv -rf deamon_name
```

###  -v, --verbose
詳細表示オプション。

標準出力に処理内容を表示する。

```
# insserv -v deamon_name
insserv: enable service ../init.d/deamon_name -> /etc/init.d/../rc0.d/K02deamon_name
insserv: enable service ../init.d/deamon_name -> /etc/init.d/../rc2.d/S01deamon_name
insserv: creating .depend.boot
insserv: creating .depend.start
insserv: creating .depend.stop
```


###  -d, --default 
  
対象ファイルに記載されているLSB(Liunx Standerd Base)コメントに記載されているランレベルにデーモンを登録する。

```
### BEGIN INIT INFO
# Provides:          deamon_name
# Required-Start: 
# Required-Stop:
# Should-Start:
# Default-Start:        2
# Default-Stop:         0

# insserv -dv deamon_name
insserv: enable service ../init.d/deamon_name -> /etc/init.d/../rc0.d/K02deamon_name
insserv: enable service ../init.d/deamon_name -> /etc/init.d/../rc2.d/S01deamon_name
insserv: creating .depend.boot
insserv: creating .depend.start
insserv: creating .depend.stop
```

###  -p <path>, --path <path> 
登録デーモンファイルのパスをデフォルトの/etc/init.dから変更するオプション。

```
・ デーモンのパスを/etc/init.dから/var/tmp／に変更する
# ls -l /var/tmp/deamon_name
-rwxr-xr-x 1 root root 1491 Aug  3 10:53 /var/tmp/deamon_name

# insserv -p /var/tmp/ -dv deamon_name 
insserv: creating directory '../rc0.d/'
insserv: creating directory '../rc1.d/'
insserv: creating directory '../rc2.d/'
insserv: creating directory '../rc3.d/'
insserv: creating directory '../rc4.d/'
insserv: creating directory '../rc5.d/'
insserv: creating directory '../rc6.d/'
insserv: creating directory '../rcS.d/'
insserv: enable service ../init.d/deamon_name -> /var/tmp/../rc0.d/K01deamon_name
insserv: enable service ../init.d/deamon_name -> /var/tmp/../rc2.d/S01deamon_name
insserv: creating .depend.boot
insserv: creating .depend.start
insserv: creating .depend.stop

・ /var/tmp/を指定すると一つ上の/var/配下に、各ランレベルのディレクトリが作成される
# ls -l /var/
/var/rc0.d
/var/rc1.d
/var/rc2.d
/var/rc3.d
/var/rc4.d
/var/rc5.d
/var/rc6.d
/var/rcS.d
```

###  -o <path>, --override <path>
/etc/insserv/overrides/配下にデーモンに登録しようとしているファイルと同じファイル名のファイルを配置すると、
登録するファイルのLSBコメントが無視(override)され、/etc/insserv/overrides/配下のファイルのLSBコメントにもとづき、
登録が行われる。

-oオプションを使うと、/etc/insserv/overridesから任意のディレクトリに変更できる。

```
・ 登録ファイル
# head /etc/init.d/deamon_name 
#! /bin/sh
### BEGIN INIT INFO
# Provides:          deamon_name
# Required-Start: 
# Required-Stop:
# Should-Start:
# Default-Start:        2
# Default-Stop:         0


・/etc/insserv/overrides/配下のファイル
# head /etc/insserv/overrides/deamon_name 
#! /bin/sh
### BEGIN INIT INFO
# Provides:          deamon_name
# Required-Start: 
# Required-Stop:
# Should-Start:
# Default-Start:        2 3
# Default-Stop:         

・ 登録
insserv -dv deamon_name
insserv: enable service ../init.d/deamon_name -> /etc/init.d/../rc2.d/S01deamon_name
insserv: enable service ../init.d/deamon_name -> /etc/init.d/../rc3.d/S01deamon_name
insserv: creating .depend.boot
insserv: creating .depend.start
insserv: creating .depend.stop

・/var/tmp/deamon_nameにファイルを配置
# head /var/tmp/deamon_name
#! /bin/sh
### BEGIN INIT INFO
# Provides:          deamon_name
# Required-Start: 
# Required-Stop:
# Should-Start:
# Default-Start:        2
# Default-Stop:         

・ オプションを指定して、登録
insserv -o /var/tmp/ -dv deamon_name 
root@armadillo:/etc/insserv/overrides# insserv -o /var/tmp/ -dv deamon_name 
insserv: enable service ../init.d/deamon_name -> /etc/init.d/../rc2.d/S01deamon_name
insserv: creating .depend.boot
insserv: creating .depend.start
insserv: creating .depend.stop
```


###  -c <config>, --config <config> 
コンフィグファイルのパスを変更するオプション。
/etc/insserv.confがデフォルトのパスになっているが、デフォルト以外のファイルを
使用したい場合に使用する

```
insserv -c /var/tmp/insserv.conf  -d deamon_name
```

### -n, --dryrun
システムへの変更は行わず、処理

```
# insserv -n -r deamon_name 
insserv: remove service /etc/init.d/../rc2.d/S01deamon_name
insserv: remove service /etc/init.d/../rc3.d/S01deamon_name
insserv: dryrun, not creating .depend.boot, .depend.start, and .depend.stop

※ lsでみるとファイルが削除されず残っていることがわかる
# ls -l /etc/rc2.d/S01deamon_name 
```

###  -s, --showall
各デーモンの登録番号と、ランレベルの情報を表示する

```
# insserv -s
※ K[終了] or S(起動):登録番号:ランレベル:デーモン名 ↓
K:02:0 1 6:apache2
K:05:0 1 6:rsyslog
K:03:0 1 6:watchdog
K:06:0 6:hwclock.sh
・
・
・
S:02:2 3 4 5:apache2
S:01:2 3 4 5:rsyslog
S:01:2 3 4 5:watchdog
S:04:S:hwclock.sh
S:03:2 3 4 5:ntp
```


* http://www.thegeekstuff.com/2014/08/insserv-command
* http://manpages.ubuntu.com/manpages/precise/man8/insserv.8.html