• 締切済み

RedHat 起動スクリプト(自作) 規約の存在?

現在、業務で、RedHatLinuxで動作するプログラムを作成しております。 /etc/init.d 配下に、自作の起動スクリプトを用意して、 プログラムの {start|stop|restart|status}の制御を実行しようと 考えているのですが、 準拠した方がいい規約など、存在するのでしょうか? 例えば、status を知りたいときに、 root$ service hogehoge status と、入力するのですが、 そのときの、”出力は、こうした方がいい”みたいな 参考文献みたいなものは存在するのでしょうか? もし、ご存知の方がいらっしゃったら、 ご教示いただけるとありがたいです。

みんなの回答

noname#98978
noname#98978
回答No.1

>そのときの、”出力は、こうした方がいい”みたいな >参考文献みたいなものは存在するのでしょうか? /etc/init.d/ 配下にある、既存のスクリプトが、参考文献そのものです。 まず、スクリプトを読みましょう。

hiro_se
質問者

お礼

説明が不足しておりまして、申し訳ございませんでした。 /etc/init.d/配下のスクリプトは、ほぼ全て調査いたしております。 例えば、status については、ほぼ全てのスクリプトが 同じような出力をしているのですが、 一部、異なる出力をしているスクリプトもありました。 そこで、”規約相当”として何か文献が存在すれば、 自作スクリプトの設計書に明記できるので、 質問させていただいた次第です。 こちらに投稿する前に、 "規約相当の有無"について、私の知る限りのサイトで、 検索はしているのですが、ヒットしなかったため、 こちらに質問させていただきました。 pastelflow様、お忙しい中、コメントしていただき、ありがとうございます。

関連するQ&A

  • FreeBSD における、アプリの起動スクリプトと登録の方法

    いま独自のサーバ用アプリを作っています。それを、FreeBSD起動時に自動的に立ち上がるようにしたいのですが、方法が分かりません。教えていただける方、あるいは、参考URLをご存知の方お教えください。 たとえば、linuxでしたら、 /etc/init.d/hogehoge start とすると、hogehogeアプリを起動し、 /etc/init.d/hogehoge stop とすると、hogehogeアプリを停止するようなスクリプトを書きます。hogehoge中身は、たとえば、以下のような感じですかね。 ----------------------------------------------------- #! /bin/sh # # chkconfig: 2345 85 15 # description: hoge hoge ... . /etc/rc.d/init.d/functions cd /usr/local/xl-gbs PATH=$PATH:/usr/local/xl-gbs/xlscript/bin export PATH start() { xl gbserver.xl / start echo } stop() { xl gbserver.xl / stop echo } restart() { stop start } case "$1" in start) start ;; stop) stop exit 1 ;; restart) restart ;; *) ;; esac exit 0 ----------------------------------------------------- その上で、 % chmod 0755 /etc/init.d/hogehoge % chkconfig --add /etc/init.d/hogehoge という風に登録します。 まあ、この操作に対応するFreeBSDの操作を教えていただければありがたい。

  • リナックスのサービス制御スクリプトの引数の意味を教えてください

    リナックスのサービス制御スクリプトの引数を省略して実行すると、次のような引数の一覧が表示されます。 使い方: /etc/init.d/smb {start|stop|restart|reload|status|condrestart} このうちstartとstopとstatusは分かるのですが、 他の引数は違いがよく分かりません。 今までサーバーを再起動するときは restartを使用していたのですが、 他にもreloadやcondrestartという引数があるので これは、どのような時に使用するのか教えてください。

  • 起動シェルの置き場所によって起動しません。

    全く同じ起動シェルなのに、 なぜか/etc配下に置かれた起動シェルからは起動できません。 原因は何でしょうか? # diff /usr/share/mysql/mysql.server /etc/init.d/mysql # /etc/init.d/mysql start Starting MySQL....................[FAILED] # /usr/share/mysql/mysql.server start Starting MySQL [ OK ] RedHatLinux4.0へMySQL5.0のパッケージを入れただけなのですが。。

    • ベストアンサー
    • MySQL
  • コマンドプロンプトとシェルでの実行結果の違い

    OS:Redhat AS v4.0 /etc/init.d/配下の実行ファイルをスクリプトの中で呼び出して いますが、何故かスクリプト実行時と個々のコマンドで実行した時と アプリの文字コードが違いますが、何が原因なのでしょうか? コマンドプロンプトで実行した時:(文字コード)正常 root#/etc/init.d/xxx restart スクリプト経由で実行時:(文字コード)異常root#/opt/tools/script.sh ※スクリプトで/etc/init.d/xxx restart を呼び出すます。。

  • 『psql: could not connect to server: そのようなファイルやディレクトリはありません』について

    Sun Linux/PostgreSQL7.2を使用しWebサイトを開発中です。環境自体はとっても初心者です。 接続しようとしてTelnetから[psql db名]を入力すると下記エラーメッセージが帰ります。 開発中にエラーが発生しないので原因(きっかけ)すらわかりません。 psql: could not connect to server: そのようなファイルやディレクトリはありません Is the server running locally and accepting connections on Unix domain socket "/tmp/.s.PGSQL.5432"? そこで、PostgreSQLの状況を見ようとして下記コマンドを入力すると、。 [root /root]# /etc/rc.d/init.d/postgresql restart PostgreSQL ・蒔・折掛 蔀河詳 ERROR! PostgreSQL ・少嘆 蔀河詳 [] [root /root]# /etc/rc.d/init.d/postgresql status postmaster is stopped [root /root]# /etc/rc.d/init.d/postgresql stop PostgreSQL ・蒔・折掛 蔀河詳 ERROR! [root /root]# /etc/rc.d/init.d/postgresql start PostgreSQL ・少嘆 蔀河詳 [] [root /root]# /etc/rc.d/init.d/postgresql status postmaster is stopped [root /root]# /etc/rc.d/init.d/postgresql stop PostgreSQL ・蒔・折掛 蔀河詳 ERROR! 停止しているのは解るのですが、起動できないようです。 やむを得ず、サーバー自体を再起動している状況です。 原因、対処法などご教授頂けませんか?よろしくお願い致します。

  • logrotateでログの整理中、httpdの再起動で不具合

    logrotateでログが整理された後、 httpサーバーが再起動されますが、 その後、WEBサイトが見れなくなります。 /etc/init.d/httpd status で見るとrunning ですが、止まっています。 /etc/init.d/httpd restart すると回復します。 /etc/logrotate.d/httpdの中の再起動部分でおかしくなっています。 /var/log/httpd/*log { missingok notifempty sharedscripts postrotate /bin/kill -HUP `cat /var/run/httpd.pid 2>/dev/null` 2> /dev/null || true endscript } /bin/kill のところです。 毎回おかしくなる訳ではなく、たまになると言う頻度、httpd restart で回復します。 どういう対応すれば良いでしょうか。。

  • ネットワークの再起動方法

    FreeBSDにてPCを再起動せずネットワークを再起動することはできるのでしょうか? Linuxで言うところの /etc/init.d/network restart 的な事がしたいのです。 すみませんが、ご存知の方がいらっしゃいましたら ご教授願えないでしょうか?宜しくお願いします。

  • red hatの/etc/rc.dについて

    デーモンを再起動する場合、/etc/rc.d/init.d/配下にあるものをrestartしますが、 rc.dはrc1.dからrc.6dまでありまして、ランレベルってことですが、 具体的にどういう意味でしょうか。 普通再起動する場合は、どれを使うのでしょうか。

  • 負荷を避けてスクリプトを実行させる方法

    負荷を避けてスクリプトを実行させる方法 メールを受信したらプログラムを実行させるようにしています。 何通もメールが来た時に正常にプログラムが実行できない時があります。 そこでbatchコマンドを盛り込んで行きたいのですが具体的な使い方がわかりませんでした。 スクリプトファイルの先頭にbatchコマンドを置けばよいのか、 /etc/mail/aliasesで初めから hogehoge: "| batch -f /etc/hogehoge.sh" のようにするのかわかりません。 もしくは別の方法があるのでしょうか? やりたい事は負荷を避けてなるべく正確にスクリプトを実行させたいのです。 どなたかわかるかたよろしくお願いします。

  • Linux 起動スクリプト(shell)

    Linux(CentOS5)で自作の起動スクリプトを作成しているのですが、 うまく動作しません。 /etc/rc.d/init.d配下にスクリプトを設置し、さらに起動スクリプトから /usr/local/lib/sssの外部ファイルを読込んでいます。 その外部ファイルは、iniファイルの設定がtrueの場合、 whileで回る仕組みになっています。(sleep 何秒毎に動くか制御しています) httpdのように常駐起動させたいのですが、どのようにすればいいのでしょうか? 実行すると処理が止まってしまいます。 ■起動スクリプト /etc/rc.d/init.d/aaa ← 起動スクリプト           |― function読込           |― ネットワーク設定読込           |― INIファイル読込み           |― 外部スクリプト実行 ■実行ファイル /usr/sbin/aaa ← 実行ファイル           |― 外部スクリプト読込           |― 外部スクリプト実行 ■外部ファイル           |― 外部ファイル処理起動           |― INIファイルがtrueの場合、whileによりループされる。 -------------------------------------------- /etc/rc.d/init.d/aaa ← 起動スクリプト start() { if [ "${path}" = "true" ]; then KIND="aaa" echo -n $"Starting $KIND services: " daemon aaa ${option} test RETVALaa=$? echo [ $RETVALaaa -eq 0 ] && touch ${LOCKPATH}/${SERVICE_NAME}test || \ RETVALaa=1 return $RETVALaa fi (省略) -------------------------------------------- /usr/sbin/aaa ← 実行ファイル case $1 in "-D" ) case $2 in "test" ) sh ${path}/aaa > /dev/null & ;; * ) ;; esac ;; * ) echo $"Usage: $0 {start|stop|restart|reload|status|condrestart}" exit 2 esac exit 0 (省略) -------------------------------------------- ■外部ファイル if [ "${SETTING}" = "true" ]; then while : do #メイン処理 (省略) sleep ${SLEEP} done #設定がfalseの場合、何もしない elif [ "${SETTING}" = "false" ]; then echo -e "${CONFIG_FALSE}" sleep ${SLEEP} exit 10 #設定が未知のものなら、終了する else echo -e "Error: ${CONFIG_ERROR}" exit 12 fi # 終了 exit 0