【無料配信♪】Renta !全タテコミ作品第1話

こんにちは。
Solaris10での起動時のコマンドの自動実行について調べています。

Solaris10の場合、SMFというものが導入されているそうですが、従来の方法も使えるとのことなので、まずは従来方式で試しています。

そこで不明点が2つほどあります。
1つは、起動時のランレベルなのですが、調べると、inittabに書いてあるとの情報が多いのですが、実際ところ、inittab内容は以下のようになっていまして、
ap::sysinit:/sbin/autopush -f /etc/iu.ap
sp::sysinit:/sbin/soconfig -f /etc/sock2path
smf::sysinit:/lib/svc/bin/svc.startd >/dev/msglog 2<>/dev/msglog </dev/console
p3:s1234:powerfail:/usr/sbin/shutdown -y -i5 -g0 >/dev/msglog 2<>/dev/msglog
どうにも起動時のランレベルと実行されるスクリプトがわかりません。


もう1つ、起動スクリプトの引数なのですが、例えばK16apacheを見ると、
case "$1" in
start|startssl|sslstart|start-SSL)
:
:
restart)
:
:
stop)
:
:
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
;;
esac
という感じになっているのですが、この$1に入ってくる値の一覧が見つかりません。
Webの情報では、「start」,「stop」,「restart」,「status」の4種類ということになっていますが、このスクリプトを見ると、他にもあるようです。実際、どう対応しておけばいいのでしょうか?

以上です。なにか情報などお持ちの方いらっしゃいましたら、よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

> どうにも起動時のランレベルと実行されるスクリプトがわかりません。


起動時のrunlevelですが、svcs -a | grep milestoneを実行すると
multi-user-serverが起動していればrunlevel3、multi-userまでであれば2、single-userまでであれば、Sに相当します。
また互換性を重要視するSunらしく、SMFで管理されているdaemonが起動し終わった後に、rc*.dのスクリプトが読み込まれますので、過去資産の使い回しも可能にはなっています。


> 実際、どう対応しておけばいいのでしょうか
ちょっと真意はご質問からは感じ取れませんでしたが所詮はapachectlを呼び出しているだけですし、rc*.dから起動するのであれば、stopとstartしか呼ばれませんので、デフォルトのままで特に問題はないと思います。

ただし従来の方法であるinit scriptを利用するのは特段理由が無ければ利用しないことを強くお勧めします。
SMFはdaemonが落ちてしまった際に自動起動することや、rc*.dではXXのあとにYYを起動する程度しか依存関係を書けませんでしたが、SMFはひもづくサービスを記述でき、かつひもづくサービスが落ちた・再起動した際に自身もrestartを実行するなどできます。

ですので、今後消えてゆくrc*.dをあえて選択する必要はないと思います。

参考URL:http://docs.sun.com/app/docs/doc/819-0378/hbrunl …
    • good
    • 0
この回答へのお礼

お返事ありがとうございます。
>multi-user-serverが起動していればrunlevel3、multi-userまでであれば2、single-userまでであれば、Sに相当します。
>また互換性を重要視するSunらしく、SMFで管理されているdaemonが起動し終わった後に、rc*.dのスクリプトが読み込まれますので、過去資産の使い回しも可能にはなっています。
はい、runlevelとしては3になるのは確かなようなのですが、その際に実行されるのはrc3.dの中身だけなのか、rc2.dの中身も実行されるのかどうも不明でして。はっきりした資料がみつからず、困っていました。

>ただし従来の方法であるinit scriptを利用するのは特段理由が無ければ利用しないことを強くお勧めします。
はい、それで従来の方法も結局よくわからないし、プロセスが落ちた時に自動で再起動してくれるのは非常に便利ですので、なんとかSMFに対応してみました。こっちもまあ、資料が乏しくて難儀したのではありますが。
実際のところ、一番情報として頼りになったのは
/usr/share/lib/xml/dtd/service_bundle.dtd
でした。
あと、登録しないと読めないですが、こちらも参考になりました。
http://sdc.sun.co.jp/solaris/solaris10/selfheal/ …

お礼日時:2009/07/10 11:00

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QSolaris10でLinux系にあるchkconfigコマンドを使い

Solaris10でLinux系にあるchkconfigコマンドを使いたいのですが良い方法はありますか?

Aベストアンサー

SMFで管理する

参考URL:http://sy2920.s151.xrea.com/solaris/smf.html

Q環境変数の設定変更について

現在、ss10を使用してSolaris勉強中の者です。
かなり初歩的な質問で恐縮なのですが、どうしてもブート時に自分が設定しておいた環境変数を
読み込ませることができません。
(起動中に環境変数を変更する方法は問題ありませんが、再起動した時点でクリアされてしまいます)
色々と検索した結果、/sbin/rc~の中を変更すればいいのかなと思ったのですが、
それでも変化が見られません。
どなたかご存知の方ご教授お願いします。

環境:
OS:Solaris8(sparc)
ハード:ss10

Aベストアンサー

#2です。補足ありがとうございます。

道義的な話をしますと、まずrootで作業するのは必要時だけにすべきです。
通常作業するためのユーザを別に作っておいて普段はそれでログインし、必要時のみ su コマンドなどによりrootになるようにします。

しかし、su で(- をつけずに)rootになった場合はログインユーザの環境変数を基本的に引き継ぎますが、PATHだけはセキュリティ上の理由により上書きされてしまうのがふつうです。
rootでの作業は慎重を期す必要性もあることから、/usr/binと/usr/sbin以外の場所にあるものを実行する場合はPATHを通すのではなくフルパスで指定するようにすべきです。

それと、/sbin の下のファイルを編集するなど『もってのほか』です。絶対にやってはいけません。もう編集してしまわれたのでしたら元に戻してください。


ということで、学習ということでしたらあまりrootのPATHを増やすのはおすすめしませんが、、、

でも、#1さんの通りにすればできるのです。
ホームに.profileを作ればいいのですから、ホームが/だったら、/.profile でいいのです。なければ作りましょう。
作り方が分からなければ、/etc/profile か、または /etc/skel/local.profile を雛型としてコピーして編集してください。

ちなみに /etc/profile は ユーザのホームに.profileがないときに使われるデフォルトのファイルです。ですので、.profileを作らなくてもこちらを編集すれば、、、ともお考えになるかもしれませんが、このファイルの内容はすべてのユーザに影響を与えうるものですので安易に編集してはいけません。
/etc/skel/local.profile のほうは、useraddコマンドやadmintoolなどでユーザを作成した場合に、ホームディレクトリに .profile としてコピーするものです。こちらもみだりに編集してはいけません

あと、.profileは、suを - なしで実行した場合は読まれません。

それと、ログインシェルがcshのばあいは.profileの代わりに.cshrcというのを用意しなければなりません。書き方も違います(/usr/skel/local.cshrc を参考にしてください)。

#2です。補足ありがとうございます。

道義的な話をしますと、まずrootで作業するのは必要時だけにすべきです。
通常作業するためのユーザを別に作っておいて普段はそれでログインし、必要時のみ su コマンドなどによりrootになるようにします。

しかし、su で(- をつけずに)rootになった場合はログインユーザの環境変数を基本的に引き継ぎますが、PATHだけはセキュリティ上の理由により上書きされてしまうのがふつうです。
rootでの作業は慎重を期す必要性もあることから、/usr/binと/usr/sbin以外の場所...続きを読む

QSolarisでJDKのインストール情報を確認する方法

Solaris 8でJDKのインストール情報を確認する方法を教えてください。
どこにインストールされているか、どのバージョンがインストールされているのか、もしくはインストールされているのかいないのか。。。等の調べ方を押してください。
宜しくお願いします。

Aベストアンサー

パッケージ一覧を表示する。
コンパイルのコマンドがあるか調べる。
バージョンを表示するオプションを指定する。
等、いくらでも方法があります。

# pkginfo | grep -i java
system IPLTjss Network Security Services for Java
system SUNWadmj Admin/Install Java Extension Libraries
system SUNWdtjxt Java Extensions
application SUNWj2pi Java Plug-in
application SUNWjaj2p Japanese Java Plug-in
application SUNWjhdem JavaHelp Demos
application SUNWjhdev JavaHelp Development Utilities
application SUNWjhdoc JavaHelp Documentation
application SUNWjhrt JavaHelp Runtime
system SUNWjmfp Java Media Framework Player
system SUNWjsnmp Java SNMP API

# which javac
/bin/javac

# java -version
java version "1.4.0_03"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0_03-b04)
Java HotSpot(TM) Client VM (build 1.4.0_03-b04, mixed mode)

パッケージ一覧を表示する。
コンパイルのコマンドがあるか調べる。
バージョンを表示するオプションを指定する。
等、いくらでも方法があります。

# pkginfo | grep -i java
system IPLTjss Network Security Services for Java
system SUNWadmj Admin/Install Java Extension Libraries
system SUNWdtjxt Java Extensions
application SUNWj2pi Java Plug-in
application SUNWjaj2p Japanese Java Plug-in
application SUNWjhdem JavaHelp Demos
...続きを読む

QSolaris10でCコンパイラが見つからない?

Solaris 10 1/06 X86版にphp5.1.2をインストールしようとしているのですが、下記エラーが表示されてコンパイルが終了してしまいます。
エラー内容を見るとCコンパイラが見つからないといっているようなのですが、どう対応すればいいのでしょうか・・・

Solaris10にはgccコンパイラがインストールされていると思うのですが・・・

どなたかよろしくおねがいします。

# ./configure
loading cache ./config.cache
checking for Cygwin environment... no
checking for mingw32 environment... no
checking for egrep... egrep
checking for a sed that does not truncate output... /usr/bin/sed
checking host system type... i386-pc-solaris2.10
checking target system type... i386-pc-solaris2.10
checking for gcc... no
checking for cc... no
configure: error: no acceptable cc found in $PATH

Solaris 10 1/06 X86版にphp5.1.2をインストールしようとしているのですが、下記エラーが表示されてコンパイルが終了してしまいます。
エラー内容を見るとCコンパイラが見つからないといっているようなのですが、どう対応すればいいのでしょうか・・・

Solaris10にはgccコンパイラがインストールされていると思うのですが・・・

どなたかよろしくおねがいします。

# ./configure
loading cache ./config.cache
checking for Cygwin environment... no
checking for mingw32 environment... no
che...続きを読む

Aベストアンサー

>インストール時に、全体全体ディストリビューションでインストールして、
>Companion CDもインストールしてあります。

OK。そういう肝心なことは、質問時に書くようにしましょう。
あとは、あなたが使っているシェルの設定ファイルのPATHに、GCCのあるディレクトリを
追加するだけです。

CompanionCDは、GCC等開発用コマンドを、/opt/sfw/bin 配下にインストールしますので、

たとえば、「$HOME/.profile」でPATHを設定
PATH=/opt/sfw/bin:/bin:/usr/bin:/usr/ucb:/etc:.
export PATH

たとえば、「$HOME/.cshrc」でPATHを設定
set path=(/opt/sfw/bin /bin /usr/bin /usr/ucb /etc .)


PATH上にgccがあることの確認。

$ which gcc
/opt/sfw/bin/gcc


gcc にPATHが通っていれば、実行可能

$ gcc -v
Reading specs from /opt/sfw/lib/gcc/i386-pc-solaris2.10/3.4.2/specs
Configured with: ../gcc-3.4.2/configure --prefix=/opt/sfw --with-ld=/usr/ccs/bin/ld \
--with-gnu-as --with-as=/opt/sfw/bin
/gas --enable-shared --disable-libgcj
Thread model: posix
gcc version 3.4.2



>/opt/sfwの中にはgcc-2があるのですが・・・

gcc-2 は古いバージョンのGCCです。

$ /opt/sfw/gcc-2/bin/gcc -v
Reading specs from /opt/sfw/gcc-2/lib/gcc-lib/i386-pc-solaris2.10/2.95.3/specs
gcc version 2.95.3 20010315 (release)

>インストール時に、全体全体ディストリビューションでインストールして、
>Companion CDもインストールしてあります。

OK。そういう肝心なことは、質問時に書くようにしましょう。
あとは、あなたが使っているシェルの設定ファイルのPATHに、GCCのあるディレクトリを
追加するだけです。

CompanionCDは、GCC等開発用コマンドを、/opt/sfw/bin 配下にインストールしますので、

たとえば、「$HOME/.profile」でPATHを設定
PATH=/opt/sfw/bin:/bin:/usr/bin:/usr/ucb:/etc:.
export PATH

たと...続きを読む

QFTPコマンドでディレクトリごとファイル移動できるコマンドはありますか?

タイトルどおりなのですが、FTPでファイルを転送する際に、サブフォルダを含むディレクトリごとファイル転送するコマンドはありますでしょうか。
ディレクトリの中にあるすべてのファイルを移動したいのですが、サブフォルダがたくさんあるので、わざわざディレクトリの場所へ移動してmputを繰り返すのはめんどうで仕方ありません。
よろしくお願いします。

Aベストアンサー

ご使用になるOS環境が書いてないのですが、Linux,BSD等ならncftpで、get -R dir。
Windowsならffftpを使えば良いと思います。

Q開いているポートを調べたいのですが・・

開いているポートで、何番ポートが開いているか、そのポートを使用しているサービスは何か。そのサービスは閉じていいのか。
調べる必要があります。

<前提>
・solaris10(用途別に4台)
・標準コマンドで調べたい。(コマンドのインストールは難しい)

<試した行動>
・netstat -t <solarisでは使用できない>
・netstat -(いろいろ) <port番号が出ない>
・/etc/services <コメントアウトしているポートなし>

<結果>
・setstatコマンドで表示される項目の意味がわかりません。
・lissonしているport番号が表示されません。

このような状況で手詰まりしています。
解説サイトも見当たりません。
ご存知でしたら、回答をお願いいたします。

Aベストアンサー

nmapというポートスキャンソフトがあるので
solarisに入れてもよし、他のホストwindows版等もあるので
そこからポートスキャンしてしまったほうが早いですよ

Qランレベルと起動スクリプト

ランレベルと起動スクリプトとの関係について教えてください。
rc*.dというファイルについて色々調べているのですが、
下記の説明を見つけまして

/etc/rc1.d/ ランレベル1の際の起動スクリプト
/etc/rc2.d/, ランレベル2の際の起動 スクリプト
/etc/rc3.d/, ランレベル3の際の起動スクリプト
/etc/rc4.d/, ランレベル4の際の起動スクリプト
/etc/rc5.d/, ランレベル5の際の起動スクリプト

デフォルトでsolaris起動時にランレベル3になるような場合、
rc3.dの中のスクリプトを読みに行くのはわかるのですが、
他のrc2.dやrc1.dは読みに行かないのでしょうか?

Aベストアンサー

確認方法は、パッと思いつくのは

1) docs.sun の Solaris9 のシステム管理を読む
http://docs.sun.com/app/docs/doc/817-4909/6mkdd9iil?l=ja&a=view

2) ブートプロセスのシェルを追う
 /etc/inittab  -> /sbin/init -> /sbin/rc* ( rc0 とか rc1 とか・・)
 この順でシェルが呼ばれますので、丁寧に追えばわかるかも。

3) 起動、停止シェルを置いてみる
 runlebel3 で起動するマシンのrc2やrc1に、ログをはくだけなどの
 みせかけの起動シェルを置いてみてはいかがでしょう。

たしかに、僕も昔、疑問に思ったことがありますが、よくわからず
今に至っていますので、逆に結果を知りたいです。

Q【Solarisディスク容量調査】

147GBのHDディスク容量のSolarisサーバ上で、「このサーバのディスクサイズは147GBです」とわかるコマンドってありますでしょうか。

dfコマンドで、各パーティションの合計を出す方法しかないのでしょうか。

ご存知の方がいましたら、教えてください。
宜しくお願いします。

Aベストアンサー

iostat -E

QSolarisでのログ情報ファイル

すみませんが、Solarisで、色々なログファイルってありますよね?
それは、全部で、どういうファイル名のファイルがあるか、それに、
それぞれ、どういう時に使われているのかを、教えていただけませんか?

それか、こういうことが詳しく書いてある参考書など、自分で調べられる
方法でも教えていただければ、有難いです。

よろしくお願いします。

Aベストアンサー

> Solarisで、色々なログファイルって ...
> 全部で、どういうファイル名のファイルがあるか

については、一般的な回答はありません。だって、ログを残すのは
その OS 配下で動作しているアプリケーションなのだから。

何のために「ログファイルの一覧」が欲しいのかによって答えは
変わってきます。

とりあえず、参考になりそうなページをふたつほど挙げておきます。

  http://www.mvs.co.jp/tech/systemlog.html
  http://www.geocities.co.jp/SiliconValley-PaloAlto/5349/Solaris/SystemMainteVarAdm.html


一般的に勉強をするのであれば、管理者用のマニュアルが一番です。
あとは man かな。セクション 4 がファイル形式についてのセクション
なので、それを片っ端から読む。

  http://docs.sun.com:80/ab2/coll.40.6/REFMAN4/@Ab2TocView?Ab2Lang=ja&Ab2Enc=shift_jis

それでも OS の一部ではないアプリケーション、例えば、apache やら
qmail などは、そのアプリケーションのマニュアルを読むしかありません。


ログとおぼしきファイルの一覧を得るのであれば、確実ではないですが、
思いつくのは、こんな方法。

find で、最近一日で更新されたファイルの一覧を得ること。
ルートから探すと /dev まで引っかかっちゃうのである程度絞らなければ
いけないけど、例えば、こんな感じ。

  % find /var /tmp /usr/local -mtime -1 -print

基本的には「ログファイル」は /var の下に置かれるべきものと考えて
いますが、出力先を指定できたり、そのデフォルトが /usr/local 配下
だったりするものがあります。

ただ、ログに残るべきイベントが発生していなければ、この探し方では
全てを洗い出せるとは限らないです。

参考URL:http://www.mvs.co.jp/tech/systemlog.html

> Solarisで、色々なログファイルって ...
> 全部で、どういうファイル名のファイルがあるか

については、一般的な回答はありません。だって、ログを残すのは
その OS 配下で動作しているアプリケーションなのだから。

何のために「ログファイルの一覧」が欲しいのかによって答えは
変わってきます。

とりあえず、参考になりそうなページをふたつほど挙げておきます。

  http://www.mvs.co.jp/tech/systemlog.html
  http://www.geocities.co.jp/SiliconValley-PaloAlto/5349/Solaris/SystemM...続きを読む

Qコンソールで文字化け

Solaris8

Solaris初心者なのですが、日本語環境にしたく、「.profile」にて

LANG=ja;
export LANG

と設定したの表示も入力も文字化けになり困っています。
過去ログを見てもいい答えが見つかりませんでした。

どうかご存知の方がいましたらご教授願います。

Aベストアンサー

質問者さんの言う「コンソール」がどの環境を指しているかによりますが、

(1)一般的にいうところの「コンソール」には日本語表示できません。LANG=Cで表示してください。

(2)TeraTerm等のtelnetリモート端末のことであれば、LANGで指定する文字コードと端末側で表示する文字コードを合わせてください。SJISならLANG=ja_JP.PCK、EUCならLANG=ja(もしくはja_JP.eucJP)

(3)日本語コードがインストールされているか、「locale -a」コマンドで確認してください。表示されたコードが使用できる文字コードです。表示したい文字コードがなかったら追加インストールします。

#どの画面にどのように表示したいのか補足していただければ、適切な回答ができると思います。


このカテゴリの人気Q&Aランキング