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

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

<概要>

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

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

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

ちなみに、私のサーバーのコンパックはこの設定ができなかったので、キーボードさしたまま、電源いれて、
LINUXが起動してから、キーボード引っこ抜いてます。Dellのパソコンは、この設定ができるようですが。

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

<1.電源OFFのやり方>

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

<電源OFF>

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

<2.電源を入れた時に、自動起動するプログラムを設定する>


注意!!ここは少々難しいので、よくわからない人は、ひとまずとばして次のページへ行きましょう。

電源を入れなおすと、ftpサーバーなどは自動起動しません。
これは不便なので、ftpサーバーは自動起動するようにしましょう。
また、apmdという省電力プログラムは、逆に自動起動しないようにしましょう。(サーバーなので、省電力にする必要なし)

手順としては、
・自動起動する設定方法を確認
・自動起動の設定
というかんじです。
↓電源をいれたときの自動起動の設定

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


[root@host /root]# ps ax | grep init
1 ? S 0:05 init [3]←この 3 という値が、自動起動するときのパラメータ

[root@host /root]# chkconfig --list
・・中略
vsftpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off ←上記で調べた3番目がオフになっているので、vsftpdは自動起動しない

[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番目がオンになりましたね。

[root@host root]# chkconfig --list apmd←apmd(省電力モード)の初期設定を確認しよう。
apmd 0:off 1:off 2:on 3:on 4:on 5:on 6:off ←確かに3番目がオンになってます

[root@host root]# chkconfig apmd off←apmd(省電力モード)の初期設定をオフにしよう。
[root@host root]# chkconfig --list apmd
apmd 0:off 1:off 2:off 3:off 4:off 5:off 6:off←確かに3番目がオフになりました。

<3.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 ←apacheを自動起動させたい場合

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


電源を入れる

/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が多いです。
前へ||次へ

慣れてきましたか?慣れたら、
自宅サーバーの注意点を勉強