LINUX起動時に同時に実行するコマンドの設定方法

このQ&Aのポイント
  • LINUXのOS起動時に同時に実行するコマンドを設定する方法について教えてください。
  • 特定のコマンドをLINUXのboot時に実行させる方法についてお知りになりたいです。
  • LINUXの起動時にデーモンを自動的に起動させる方法を教えてください。
回答を見る
  • ベストアンサー

LINUXについて質問です。

LINUXのOS起動時に、同時に実行させるコマンドをどこに書けばよいかを おしえてください。 たとえば、私はApacheをソースからビルドしていますが、そのパスが /usr/local/apache/bin/apachectl となります。 これをLINXUのboot時に同時に /usr/local/apache/bin/apachectl start というコマンドを実行させたいのです。 LINUX実行時に同時にデーモンを起動させるには /etc/rc3.d/以下に各バイナリのシンボリックなどを置いておけば (ランレベル3がCUIで起動時の自動実行レベル?なんですよね?) 動くことはわかりました。 ただこれではなく 直接コマンドを書いておいて、それを実行させるということをしたいのです。 ただ、以前LINUX起動時にどこかのドットファイルにLINUXのコマンドを書いておけば 起動時に自動で実行されるとみたきがするのです。 サーバー類に詳しい方おしえてください。 LINUXはCentOS6.0系です。

質問者が選んだベストアンサー

  • ベストアンサー
  • EF_510
  • ベストアンサー率50% (306/604)
回答No.3

「起動時」に実行したいのであれば /etc/rc.local にコマンドを記載してください。

1000vicki
質問者

お礼

ありがとうございます。 .bashrcに記述したときは、起動しても動かずログインした直後に 指定のデーモンが実行されました。

その他の回答 (2)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

ランレベル 3 に入るときには, /etc/rc3.d/ にある 「S+数字 2桁+なんか」 というスクリプトを「数字の順」に実行します (逆にランレベル 3 から出るときには 「K+...」だったかな). 「数字が重複してはいけない」という規則はありません (ただしそれらの間に依存関係があると困る).

1000vicki
質問者

お礼

ありがとうございます。 S99mysqldや S99httpdとしてみても、 WEBサーバーとしては問題なかったです。 ただ、依存関係があるものに関しては気をつけます。

  • notnot
  • ベストアンサー率47% (4848/10262)
回答No.1

>LINUX実行時に同時にデーモンを起動させるには/etc/rc3.d/以下に各バイナリのシンボリックなどを置いておけば そこに置くのはデーモンだけではありません。 起動時に実行したいファイルを S で始まる名前で置きます。 >直接コマンドを書いておいて、それを実行させるということをしたいのです。 そのコマンドを書いたファイルをそこに置けば良いのですが。 >ただ、以前LINUX起動時にどこかのドットファイルにLINUXのコマンドを書いておけば起動時に自動で実行されるとみたきがするのです。 それは起動時じゃ無くて、ユーザーログイン時のことでしょうね。ドットファイルと言うことだと。 >LINUXはCentOS6.0系です。 どうしても新規でファイルを作りたくないということだと、/etc/rc3.d/S99local に追加書きすれば良いです。

1000vicki
質問者

お礼

ありがとうございます。 掲題の件は /root/.bashrcファイルに /usr/local/apache/bin/apachectl start と書くと確かに起動時ではなくログイン時にアパッチが起動するようになりました。 ここにはシェルスクリプトのみしかかけないとおもっていましたが 上記のようなコマンドもかけるのですね。 ちなみうに通常テキストモードでログインする場合は ランレベル3がテキストでのログインとききました。 その際に、テキストモードで起動時に同時に実行させるデーモンを S99httpdなどとかいて実行させる順番を指定させました。 これってやはり起動時に同時に実行させるのは99個までが限界というこですか? さすがに99個も動かすことってないのでしょうけど・・。 ちょっとその点がきになりました。

関連するQ&A

  • apache について

    Linux RedHat7.1 を使っています。 apache をインストールして、 初期設定のままで、 /usr/local/apache/bin/apachectl start を実行してから、 /usr/local/apache/bin/apachectl stop  を実行した後、 再度、 /usr/local/apache/bin/apachectl start を実行すると、 ログファイルがどうとかで、エラーが出て実行できなくなってしまいました。 apache を実行する時と、ストップする時には、どの方法を使うのが一番よい方法なのかを教えてください。 なんか、いまいち何を言ってるのかわからないかも知れないけど、どうか、よろしくお願いします。

  • apacheを最初から起動したい。apachectlではなく。

    こんにちは、laser5linux7.2にapache1.3.26ソースからアップグレードしました。そうしたところPCを起動するだけでは自動的にhttpdが立ち上がらず、コマンドから/usr/local/apache/bin/apachectl startとしないとたちあがりません。これを最初から自動的に立ち上がらせるにはどうしたらよいでしょうか。xinetd.confかなにかを書き直さなければいけないのですか。

  • apacheでphp、exec、system関数でのsudo実行

    FreeBSD 7.0-STABLE でphpスクリプトを作っています。 apacheは2.0.63、phpはphp-4.4.9です。 apacheの設定 ユーザ、グループは、apache phpは safe_mode = offです。 sudoは apache ALL=(ALL) ALL と設定しています。 apacheを手動で起動 /usr/local/apache2/bin/apachectl start して、下記を実行すると <?PHP $cmd = "echo 'password' | sudo -S ls /root"; exec($cmd, $output); print_r($output); ?> 結果、 Array ( [0] => .cshrc [1] => .history [2] => .k5login [3] => .login [4] => .profile [5] => .ssh ) とうまく実行できるのですが apacheを自動起動した場合、 以下の方法をそれぞれ試しましたが # cp /usr/local/apache2/bin/apachectl /usr/local/etc/rc.d/apache.sh # chmod 0755 /usr/local/etc/rc.d/apache.sh より起動 /etc/rc.local # Start Apache /usr/local/apache2/bin/apachectl start より起動 crontab -e @reboot /usr/local/apache2/bin/apachectl start より起動 いずれも 結果は Array ( ) とうまくいきません。 どなたか原因のわかる方、教えていただけないでしょうか? 宜しくお願いいたします。

  • apachectl start command not foundが発生

    Linux初心者です。 質問の内容は以下の環境と手順でApacheをインストール後、 Apache起動時に「command not found」とエラーが発生してしまいます。 環境 ・CentOS3.9 ・Apache2.0.47 手順 1.「wget」コマンドでApache2.0.47をダウンロード 2.ダウンロードしたApahce2.0.47を解答 3.「cd {解凍したディレクトリ}」コマンドの実行 4.「./configure」コマンドの実行 5.「make」コマンドの実行 6.「make install」コマンドの実行 7.Apacheを起動するために「/usr/local/apache2/bin/apachectl start」コマンドを実行 手順7でコマンドを実行すると 「-bash: apachectl: command not found」 とエラーが発生します。 初歩的な質問ですが、ご教示ください。

  • Apacheを複数のhttpd.confを用いてる場合の再起動

    Apacheを複数のhttpd.confファイルを用いて運用している場合、 個々のhttpd.confを指定してのApache再起動は可能なのでしょうか? 試しに、httpd_1.confとhttpd_2.confを用いて実施してみましたけど、 エラーになってしまいました。 手順を踏まえての詳細を以下に示します。 1./usr/local/apache2/bin/apachectl -f /usr/local/apache2/conf/httpd_1.conf コマンドでApacheを起動。 2./usr/local/apache2/bin/apachectl -f /usr/local/apache2/conf/httpd_2.conf コマンドでApacheを起動。 3.その後Apacheを停止したらプロセスが残ってしまいました。

  • Vine Linux 2.15 ではApache2を動かせないのでしょうか。

    古い ノートパソコン(PentiumMMX 233Mhz メモリ64MB)にVine Linux 2.15 をインストールして学習しています。 ---------------------------------------- Vineに付属していたApache1.1は、削除方法が今ひとつ良く分からないのでそのままとし、Apache2(httpd-2.0.53.tar.gz)を解凍しインストールして共存させました。 # /usr/local/apache2/bin/apachectl  start   とすると、 (98)アドレスは既に使用中です:・・・・と出るので、Apache1.1の /etc/httpd/conf/httpd.confファイル中のポート番号を80番から8888番 に変更してrebootしました。そして、Apache2.0を起動してlocalhostにアクセスしましたが、「サーバが見付かりません」とのメッセージが出ます。 # /usr/local/apache2/bin/apachectl  stop   としてみると、 httpd (pid 1029?) not running となり、Apache2が動いていない様子です。 ----------------------------------------- # vi /usr/local/apache2/conf/httpd.conf で開いてみると、Listen80 になっています。しかし、 # netstat -ln | grep 80   とすると、 tcp 0 .00.0.0.0:5680 0.0.0.0:* LISTEN となっており、Port80は見当たりません。 # ps aux | grep http   とすると、FedoraCoreの解説本には、 [・・・・・・/usr/local/apache2/bin/httpd -k start] になると書いてありますが、 root 689 0.0 2.0 3712 1296 ? S 14:33 0 /usr/sbin/http となっています。 ------------------------------------ どこが不具合でApache2が動かないのでしょうか。どのように修正すれば良いでしょうか。 Apache2を起動できないのは、そもそも、パソコンの能力が不足しているからでしょうか? Vine Linux 2.15ではApache2を使えないのでしょうか? 何かお気づきの点があれば教えて頂ければ有難いです。よろしくお願いします。

  • Linuxのシェルで「*)」の意味について質問です

    ttp://kazmax.zpp.jp/apache/apache2.html このサイトで見つけたのですが これはどういう意味なのでしょうか? それと、case文の最後にも同じように片側だけの括弧がありますが これの意味も教えていただけると幸いです #!/bin/sh # # chkconfig: 35 85 15 # description: apache 2.2.3 apachectl="/usr/local/apache2/bin/apachectl" case "$1" in start|stop|restart|fullstatus| \ status|graceful|graceful-stop| \ configtest|startssl)   ←です $apachectl $@ ;; *)      ←です ;; esac

  • Apache2 のエラーについて

    Apache2 を、/usr/local/apache2/bin/apachectl start あるいは、/usr/local/apache2/bin/apachectl restart で、スタートさせようとすると、以下のエラーになります。 また、/usr/local/apache2/bin/apachectl stop を2回実行しても、 no pid file?といったコメントで、ブラウザからサイトへアクセスできません。 いったい、どうすればいいのでしょうか? /usr/local/apache2/bin/apachectl restart httpd not running, trying to start (48)Address already in use: could not bind to address 0.0.0.0:80 no listening sockets available, shutting down Unable to open logs

  • APACHEは起動するが、ブラウザからアクセスできない

    Red Hat Linux7.1 APACHE1.3.19 部内LAN上でLinuxサーバーを構築しています。 Apacheをコンパイル&インストール(成功?)したのですが、 クライアントのブラウザからhttp://xxx.xx.xxx.xx/を入力して アクセスしようとすると「(145) Connection timed out」で接続できません。 原因がよくわからないので、怪しいと思う点についてアドバイスをお願いいたします。 自分で切り分けた結果を以下に記します。足りない点があれば、ご指摘ください。 ちなみにtelnet、ftpなどの基本的な(?)ネットワーク機能は生きています。 ●apachectl configtestの結果は「Syntax OK」 ●apachectlも起動する ●「telnet localhost http」→「GET /」を入力すると応答がある ●しかし他のホストから「telnet xxx.xx.xxx.xx http」で接続しようとしても、拒否される。 ●ブラウザからの接続要求に対してhttpdが反応していない(topコマンドで監視) ●ps -ax|grep httpdの結果は以下のとおり 223 ?? Ss 1:09.47 /usr/local/apache/bin/httpd 233 ?? I 0:00.84 /usr/local/apache/bin/httpd 234 ?? I 0:01.02 /usr/local/apache/bin/httpd 235 ?? I 0:00.22 /usr/local/apache/bin/httpd 236 ?? I 0:00.23 /usr/local/apache/bin/httpd 237 ?? I 0:00.41 /usr/local/apache/bin/httpd 311 ?? I 0:01.45 /usr/local/apache/bin/httpd 1429 ?? I 0:00.26 /usr/local/apache/bin/httpd

  • apacheのスタートアップについて

    初めましてLinux(RedHat9)の初心者です。 自動的に立ち上がるrc.localファイルにapachectl のパスを書いたのですが、立ち上がりません。 /etc/rc.d/rc.localに下記のパスを記入 /usr/local/apache/bin/apachectl start 仕方なく手動で立ち上げています。 このファイル以外に設定しなければならない場所が ありましたら教えて下さい。 ご教授を願います。