回答:
前述のように、Red Hatベースのシステムを使用している場合、次のことができます。
/etc/init.d
(例:)/etc/init.d/myscript
。スクリプトの形式は次のとおりです。#!/bin/bash
# chkconfig: 2345 20 80
# description: Description comes here....
# Source function library.
. /etc/init.d/functions
start() {
# code to start app comes here
# example: daemon program_name &
}
stop() {
# code to stop app comes here
# example: killproc program_name
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
# code to check status of app comes here
# example: status program_name
;;
*)
echo "Usage: $0 {start|stop|status|restart}"
esac
exit 0
形式は非常に標準的であり、既存のスクリプトはで表示できます/etc/init.d
。そうすると、そのような/etc/init.d/myscript start
またはのようなスクリプトを使用できchkconfig myscript start
ます。ckconfig
manページには、スクリプトのヘッダについて説明します。
> This says that the script should be started in levels 2, 3, 4, and
> 5, that its start priority should be 20, and that its stop priority
> should be 80.
サンプルの開始、停止、およびステータスコードは、 /etc/init.d/functions
スクリプトを有効にする
$ chkconfig --add myscript
$ chkconfig --level 2345 myscript on
スクリプトが実際に有効になっていることを確認してください-選択したレベルが「オン」になっているはずです。
$ chkconfig --list | grep myscript
マシンが通常どのランレベルで起動するかをテストします。
runlevel
多くの場合、これは5または2です。さまざまな規則がありますが、実際には何も確立されていません。Ubuntuは2を使用しますが、以前使用していた以前のディストリビューションは常に使用していました
そして、あなたはおそらく、あなたのinitスクリプトからシンボリックリンクを作成/etc/init.d/foobar
します/etc/rc2.d/SXYfoobar
Sは「このランレベルでこのスクリプトを開始する(ここでは2)」という意味です。XYは2桁の10進数で、これはシーケンスに関連しており、スクリプトが開始されます。
前に実行されるスクリプトS45barfooに依存しており、S55foofooがスクリプトに依存している場合、45〜55のxyを選択します。同じ番号の場合、ブート順序は定義されていません。
その間、Ubuntuはと呼ばれる別の起動手順に切り替えました(切り替えています)upstart
。
注:リンクが常にリンクしているわけではありません/etc/rcX.d
-場合によっては/etc/init/rcX.d
類似している場合もありますが、/ etcの下のどこかに簡単に見つけることができます。
開始スクリプトの最後で何かを開始したい場合/etc/rc.local
、探すファイルになりますが、すでに実行されているX11に依存している場合は、デスクトップ環境の自動起動オプション、または/etc/X11/Xsession.d/
説明したようなパターンを探します上記。
ネットワークが稼働していることに依存している場合、別のディレクトリ(if-up.d)があり、外部USBドライブなどのマウントされたデバイス用/etc/udev/rules.d/
です。
update-rc.d
?
Naftuli Tzvi Kayが上記のDebianについて尋ねたように:Debian 6以降、スクリプトには依存関係と機能を示すLSB(Linux Standards Base)ヘッダーを含める必要があります(debian wikiページを参照)。
LSBヘッダーが存在する場合、insserv
ブートプロセスにスクリプトを含めるために使用できます(別のdebian wikiページを参照)。
/etc/init
、/etc/init.d
、/etc/rc.d
、/etc/rc.local
といくつかのより多くのそれはありますか?