レポ
クラウドで
伸びる人沈む人

連絡特定商取引将来設計運営方針&メルマガSEの彼女は?
成功レポート集 Fedora9インストール! EclipseでJava Oracleバックアップのアーキテクチャ ゼロからHPでCGI 便利ネット知識
無料レポ&講習 IT業界の実態 linux処方箋 Java処方箋 Oracle処方箋 Perl処方箋
Linux電源ONで自動起動する設定

<概要>

LINUXの電源の切り方は、スイッチで切ればいいというものではありません。
きちんと、コマンドでシャットダウンして電源をOFFにしましょう。

また、電源ONにすれば、自動的にLinux(Fedora9)が起動するはずです。

しかし、電源起動の設定(BOOT設定)で、「キーボードエラーの検出を表示する」なんてことになっていると、
キーボードがサーバーにささってないと、電源のスイッチを入れても、途中で止まってしまいますので注意が必要です。

電源起動の設定(BOOT設定)で、「キーボードエラーの検出を表示を無視する」こともできます。
(コンピュータによって違いますが、電源をいれたときに、「DEL」キーを押すと、「(BIOS)Setup」画面が出て設定できる)

あと、電源をいれてLINUXが起動したときに、同時に起動して欲しいプログラムもありますよね。
たとえば、ftpサーバーは、電源ONと同時に起動して欲しいです。その方法を説明します。

<電源OFFのやり方>

電源OFFは、以下のコマンドを実行しましょう。
↓電源OFF

<電源OFF>

[root@host /root]#shutdown -h now ←今すぐ、強制的にシャットダウンしろということ

<chkconfigを使って、電源を入れた時に、自動起動するプログラムを設定>


電源を入れなおすと、ftpサーバー、Web(Apache)などは自動起動しません。
これは不便なので、ftpサーバーとWeb(Apache)は自動起動するようにしましょう。

実際に使い方をみてみましょう。


ちなみに、
#chkconfig --list
というコマンドをうつと、設定できるプログラムのリストをみることができます。

<電源をいれたときの自動起動の設定>


[root@host /root]# chkconfig vsftpd on ←このコマンドで、vsftpd が自動起動する。

[root@host /root]# chkconfig --list vsftpd←vsftpd が自動起動になったか確認してみよう
vsftpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off ←3番目、5番目がオンになっていればよい。


[root@host root]# chkconfig httpd on←Apache(httpd)が、電源が入ったときの自動起動もオンにする
[root@host root]# chkconfig --list httpd
httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off←3番目、5番目がオンになっているので成功

<chkconfigリストに出てこなくて、電源を入れた時に自動起動したいプログラムの設定>

chkconfigのリストに出てこなくて、電源を入れた時に自動起動したいプログラムを設定します。

/etc/rc.d/rc.localの最後の行に、以下のように、実行したいプログラムを追記します。
/usr/local/apache/bin/apachectl start
↓/etc/rc.d/rc.localの設定

</etc/rc.d/rc.localの設定>


[root@host /root]# vi /etc/rc.d/rc.local ←このファイルの最終行に、実行したプログラムを書き足します。

・・中略
/usr/local/apache/bin/apachectl start ←apachectlを自動起動させたい場合

<電源がはいったときの仕組みについて(知りたい人は、お勉強)>


ここからは、もっと深く知りたいひとだけお読みください。


電源を入れる

/etc/inittab ファイルの設定が読み取られる。(init実行)その設定に基づき、プログラムが実行される。


/etc/inittabファイルのなかで、「id:3:initdefault:」の記述がありますが、これがパラメータ[3]という意味なのです。
/etc/rc.d/init.d/配下のプログラムは、上記設定に基づき実行されます。

ところで、chkconfig --listは何がもとになっているのでしょうか。それは、以下で確認できます。

# cd /etc/rc.d/
# ls
init.d/ rc.local* rc0.d/ rc2.d/ rc4.d/ rc6.d/
rc* rc.sysinit* rc1.d/ rc3.d/ rc5.d/

rc*.d/ *が1〜6あります。これがパラメータです。つまりこのディレクトリのなかに設定が隠れています。rc.3dを見てみましょう。
<例>
# cd /etc/rc.d/rc3.d/
# ls *vsftpd*
K92vsftpd@
# ls *cron*
S40crond@

つまり、vsftpdの頭にK92とあります。先頭がKだと自動起動しない。先頭がSだと自動起動するのです。だからcrondは自動起動するのです。これがからくりです。じゃあ、この実行ファイルはどこにあるのか確認しましょう。

<例>
# ls -la *cron*
lrwxrwxrwx 1 root root 15 Sep 16 15:43 S40crond -> ../init.d/cro
nd*
<説明>
/etc/rc.d/init.d/crondにシンボリックリンクが貼ってあります。つまり、電源を入れた時に自動起動できるプログラムは、すべて/etc/rc.d/init.d/crondの中にあるのです。そのパラメータが/etc/inittabファイルと/etc/rc.d/ディレクトリ中のファイルなのです。そのパラメータを変更するコマンドがchkconfigです。もし難しいようでしたら、とにかく自動起動させたいプログラムに対して以下のコマンドを打ちましょう。
<例>
# chkconfig vsftpdi on
<説明>
プログラムは、以下のコマンドでリストがでます。
<例>
# chkconfig --list
<説明>
では、リストに登場しないプログラムを自動起動したい場合は?以下のファイルに追記してあげます。例えば、アパッチを追加したい場合は以下のとおりです。
<例>
# vi /etc/rc.d/rc.local

<説明>
rc.localの最後の行に以下を追記します。
/usr/local/apache/bin/apachectl start

<説明>
また電源を入れた時の初期画面の設定も、etc/inittabファイルの「id:3:initdefault:」記述を変更すればできます。
「id:3:initdefault:」だとコマンドラインが多いです。
「id:5:initdefault:」だとX Windowが多いです。
慣れてきましたか?慣れたら、
自宅サーバーの注意点を勉強