いま独自のサーバ用アプリを作っています。それを、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の操作を教えていただければありがたい。
No.3ベストアンサー
- 回答日時:
どちらかというと、4-STABLEを使用してきていたので、5.x系はあまり詳しくないですが。
最低、
1. サブルーチン群の読み込み(/etc/rc.subr)
2. スクリプト名の指定(name)
3. 起動するコマンド指定(command,start_cmd,stop_cmd等)
4. 実際の起動関数の呼び出し(run_rc_command "$1")
を行えば大丈夫だと思います。
詳しくは、man rcとかman rcorderとか/etc/rc.subrのコメントあたりでも参照してみてください。
例で上げたスクリプトだと以下のような感じかな?
(正常に動作するかは保障できませんが)
-------8<-------8<-------8<-------8<-------
#!/bin/sh
cd /usr/local/xl-gbs
PATH=$PATH:/usr/local/xl-gbs/xlscript/bin
export PATH
. /etc/rc.subr
name=gbserver
start_cmd=gbserver_start
stop_cmd=gbserver_stop
gbserver_start() {
xl gbserver.xl / start
echo
}
gbserver_stop() {
xl gbserver.xl / stop
echo
}
run_rc_command "$1"
-------8<-------8<-------8<-------8<-------
>また、/etc/rc.d の下にも同じようなファイルがいっぱいあります。
>こちらは.sh がついていない様子ですが、こっちへ入れても良いのでしょうか?
>この二つのディレクトリの区別はあるのでしょうか?
No.1でも少し触れましたが、システムで最初から用意されているものが/etc/rc.dディレクトリ配下、後からPackegeやPorts、ソースからのインストール等いれたものが/usr/local/etc/rc.dという感じですかね。
別に/etc/rc.dに入れたければ入れても構わないと思いますが、個人的には今までの使用してきた癖で/usr/local/etc/rc.d側に入れますね。
だいぶ時間かかってしまいました申し訳ありません。
というのも、肝心の独自のサーバのバグ取りがなかなか大変でインストーラまで手が回りませんでした。
おかげさまでインストーラが出来ました。
No.2
- 回答日時:
FreeBSD 5.X-RELEASEから、rcNGという新しい起動スクリプトの
仕組みが導入されました。(ちなみに元はNetBSDのものです。)
したがってご推察のとおり、rcNGの流儀に従えば、
起動スクリプトを簡潔に記述することが出来ます。
残念ながら、いま手元に5.Xのマシンが無いため、具体例を
示すことが出来ませんが、他の方の回答を待つか、
「rcNG スクリプト 書き方」あたりでgoogle検索してみてください。
だいぶ時間かかってしまいました申し訳ありません。
というのも、肝心の独自のサーバのバグ取りがなかなか大変でインストーラまで手が回りませんでした。
おかげさまでインストーラが出来ました。
No.1
- 回答日時:
Linuxでのような操作はありません。
通常、PackagesやPortsから何かソフトウェアをインストールした場合のようにシステム以外のローカルなものの起動スクリプトは「/usr/local/etc/rc.d」ディレクトリ配下に「hogehoge.sh」(.sh付きでないと起動対象とならない)というファイル名の形式で置けばいいだけです(もちろん実行可能であることは前提ですが)。
起動/停止については、Linuxと同様に「hogehoge.sh start」、「hogehoge.sh stop」というように呼ばれます。
例に上げたスクリプトも修正すればFreeBSDでも使用出来ると思います。
この回答への補足
いま、てもちのFreeBSDの/usr/local/etc/rc.dの中みを見てみましたが、
% ls
000.pkgtools.sh
% cat 000.pkgtools.sh
#!/bin/sh
#
# $Id: pkgtools.sh 1047 2004-12-25 15:35:21Z knu $
# PROVIDE: pkgtools
# REQUIRE: ldconfig
# KEYWORD: FreeBSD
. /etc/rc.subr
name=pkgtools
start_cmd=pkgtools_start
stop_cmd=:
[ -z "$pkgtools_libdir" ] && pkgtools_libdir="/usr/local/lib/compat/pkg"
pkgtools_start() {
if [ -d "$pkgtools_libdir" ]; then
/sbin/ldconfig -m "$pkgtools_libdir"
fi
}
load_rc_config $name
run_rc_command "$1"
%
てな感じですね。どうも、最低限、start_cmd、stop_cmdという二つの変数(?)をセットアップすればよさげに見えますが、そんな解釈で良いのでしょうか。
また、/etc/rc.d の下にも同じようなファイルがいっぱいあります。こちらは.sh がついていない様子ですが、こっちへ入れても良いのでしょうか?この二つのディレクトリの区別はあるのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
DNSサーバーの構築「no servers...
-
WMIを有効にする方法が分かりま...
-
rpcbindについて
-
telnetd, sshdが動いているかど...
-
テキストログインでstartxをし...
-
Linux(redhat系)の実行ユーザ...
-
WMP10にて『RPC サーバーを利用...
-
httpd(Apache)でhttpsのポート...
-
wermgr.exeって何ですか?
-
namedが起動しない
-
DNSサーバを構築しています。/e...
-
AppleScriptやXcodeについて質...
-
geditについて
-
ユーザーページの設定および公...
-
mediatomb DLNA
-
PostgreSQLの自動起動
-
AIXルーティング情報について
-
windows media player起動しない
-
FMVマイページ、FMVサーチが勝...
-
リモートデスクトップに接続で...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
DNSサーバーの構築「no servers...
-
Linuxサーバーは定期リブートを...
-
MacOSのLaunchAgentsってなんで...
-
WMIを有効にする方法が分かりま...
-
geditについて
-
batファイルでのプログラム起動順
-
FTPでユーザ名の表示
-
wermgr.exeって何ですか?
-
sambaのnmbが起動できない
-
gnomeのスタートアップの設定フ...
-
テキストログインでstartxをし...
-
apacheが起動しない
-
AIXルーティング情報について
-
rsh コマンドでのパスワード入...
-
インデザイン(InDesing)の開き...
-
linuxからのメールが文字化けと...
-
VNCクライアントから管理者権限...
-
起動しているapacheのバージョ...
-
rcpができない
-
ProFTPDの設定の反映
おすすめ情報