- ベストアンサー
OS起動時に、自動的に設定ファイルを読み込む方法
VineLinuxを使っています。 Windows の Astec X から使ったところ、文字化けが発生したので、 http://www.astec.co.jp/products/ASTECX/FAQ/vine25cr_font.html にしたがって設定したところ文字化けが直りました。 しかし、Linuxを再起動したとき元に戻ってしまいます。 上記サイトに書いてある、 # /usr/X11R6/bin/xfs -config /usr/X11R6/lib/X11/fs/config.astecx -port 7200 -daemon このコマンドを手動でやっていたので、Linuxの起動時にもこのコマンドを自動実行するようにしなければならないのだと思うのですが、Linuxでこういうのを自動実行するにはどうしたらよいのでしょうか? Windowsだと、コントロールパネルに「サービス」というのがあって、OSの起動時に自動実行してくれますが。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
起動スクリプトの中身をつらつらと読んでいたのですが・・・・.どうも僕が提案した方法はあまりよくないようです. 標準のフォントサーバを起動しておく必要がないなら,xjdさんの言うとおりにしたほうが良いかもしれない. とりあえず,僕の方法でやるための手順を記しておきます. (1) /etc/init.d/ で, cp xfs xfs2 とコピーする. これは正しい.そのまま実行してください. (2) xfs2 の start()関数で, daemon xfs -droppriv -daemon を, daemon xfs -config /usr/X11R6/lib/X11/fs/config.astecx -port 7200 -daemon と書き換える. これも正しいが,もともと -droppriv オプションがついているのでこれを付け加えておいたほうが良いのではないかと.つまり, daemon xfs -droppriv -config /usr/X11R6/lib/X11/fs/config.astecx -port 7200 -daemon とする.気が向いたら,ファイルの最初の # config: /etc/X11/fs/config のところも書き換えといて. 更に,ファイル中の xfs を全て xfs2 に書き換えてください.また, /usr/X11R6/bin/xfs というファイルがあるので,これに関して, cd /usr/X11R6/bin ln -s xfs xfs2 としてシンボリックリンクを作ります.このあたりがお勧めしない理由です.変なところに変なゴミファイルを作らなきゃいけない. (3) 最後に,これだけでは自動起動しないので,chkconfig するんですが,これは多分 RedHat系なら /sbin ディレクトリにあると思います. locate chkconfig すれば出てくるのではないでしょうか?. chkconfig --add xfs2 で起動スクリプトがセットアップされるはず. 以上. > ■ /etc/rc.local の if と fi の間のどこかに > xfs -config /usr/X11R6/lib/X11/fs/config.astecx -port 7200 -daemon > という方法でもOKなのでしょうか? OK だと思います.個人的にはこっちのほうが,削除時に手間がかからなくて(一行削除)お勧めだと思うのです.ただ,if と fi というのが,何の if なのか分かりませんので,その if 文の意味を調べる(ここに出してみる)か,とりあえずその if の外,ファイルの末尾に入れてみればいかがでしょうか. > ■ あと、/etc/init.d/ と /etc/rc.d/init.d/ は > 何が違うのでしょうか (飽くまで RedHat では)全くおんなじDeath./etc/init.d/ はシンボリックリンクで /etc/rc.d/init.d/ が本体になっている.多分かこの仕様との互換性のために /etc/init.d/ を残しているのではないでしょうか?.
その他の回答 (5)
- stanaka
- ベストアンサー率44% (13/29)
/etc/rc.local は,他はよく知らないのですが,RedHat系なら起動時の「最後」に読み込まれるファイルです. 参考URLの内容では,標準のフォントサーバに加えて,ポート番号を変更してもう一つ ASTEC-X 用のサーバを起動しているようですので, /etc/init.d/ ディレクトリまたは /etc/rc.d/init.d/ ディレクトリ以下のサービス起動スクリプトを使って同じ事をするのであれば,起動スクリプトの xfs をコピーして xfs2 とでも名前を変え,ASTEC-X 用の設定ファイル(ここではconfigastecx)を読み込むようにしたほうが良いのでは?. で最後に chkconfig.
お礼
ありがとうございます。 手順: (1) /etc/init.d/ で、 cp xfs xfs2 とコピーする。 (2) xfs2 の start() 関数で、 daemon xfs -droppriv -daemon を、 daemon xfs -config /usr/X11R6/lib/X11/fs/config.astecx -port 7200 -daemon と書き換える。 (3) ??? これで xfs2 は起動時に読み込まれるでしょうか? chkconfig と打つと、command not found と出ます。 ところで、 ■ /etc/rc.local の if と fi の間のどこかに xfs -config /usr/X11R6/lib/X11/fs/config.astecx -port 7200 -daemon という方法でもOKなのでしょうか? ■ あと、/etc/init.d/ と /etc/rc.d/init.d/ は何が違うのでしょうか、
- xjd
- ベストアンサー率63% (1021/1612)
>どこに書き込めばよいでしょうか? とりあえず、xfsを起動している行にオプションを追加してみてはどうでしょう? start() { ...... daemon xfs -droppriv -daemon ...... } プロセスを確認したら、後ろに書いた引数がそのまま反映している見たいですので。 # ps ax | grep xfs 649 ? S 0:00 xfs -droppriv -daemon また、上の方にxfsの環境ファイルの指定があります。 # processname: xfs # config: /etc/X11/fs/config このファイルにオプションを記述する方法もあるみたいなので、 試してみてください。
- xjd
- ベストアンサー率63% (1021/1612)
/etc/init.d/xfs というXフォントサーバ起動シェルがもしあったら、修正してみては いかがでしょう。 修正した後、 # ntsysv で、xfsにチェックを入れたら、Linux起動時にxfsサービスが実行されます。
お礼
ありがとうございます。 xfs 見ましたが、関数がいくつかあって 関数の中にもいろいろ書いてあります。 どこに書き込めばよいでしょうか?
- asuca
- ベストアンサー率47% (11786/24626)
~/.xinitrcにくわえてやればいいのでは?
お礼
ユーザーレベルではないのでだめです。
- stanaka
- ベストアンサー率44% (13/29)
/etc/rc.local の最後に書き加える.
お礼
ありがとうございます。 それは、ブート時にシステムが読み込むファイルですか?
お礼
できました!