アプリ版:「スタンプのみでお礼する」機能のリリースについて

初めて質問いたします。
よろしくお願いします。

OS:solaris8

OSの起動・停止時に自動起動させたいコマンドがあったので、
以下のシェル(testsh)を作成し、/etc/init.dに置き、
/etc/rc0.dにtestshに対しK99testshの名称でシンボリックリンクを作成、
/etc/rc3.dにtestshに対しS99testshの名称でシンボリックリンクを作成しました。

OS起動時には、iii.txtが削除され、
OS停止時には、jjj.txtが削除されると思うのですが、
削除されていませんでした。

OSの起動・停止時ではなく、sh -x testshで起動した場合は、
正常に動作しました。

又、suでユーザーを変更しないスクリプトに変えた場合は、OSの起動・停止時にiii.txt、及びjjj.txtが削除されていたので、
起動・停止時のsuが正常に動作していないように思います。

どなたが原因などお分かりでしょうか?
又は、手順で何か間違いなどありますでしょうか?
ご教授よろしくお願いします。


以下シェル(testsh)の内容
#!/bin/sh

case "$1" in
start)
su - user -c "rm /export/home/user/test/iii.txt"
;;
stop)
su - user -c "rm /export/home/user/test/jjj.txt"
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
;;
esac

exit 0

A 回答 (4件)

Solaris8の環境設定の問題の可能性が高そうですね。



現在、「su - user」で実行していますが、これだとユーザ別の環境初期化が動きますよね。
.loginや、.profile等の中で、OpenWindowを前提としたモジュール等が起動されているのではないでしょうか。
GUIログインで動いている環境(RunLevel5)ならば、その可能性は高いかと思います。

ためしに、「su user」でやってみたらどうですかね。

これが次の切り分けだと思います。
    • good
    • 0
この回答へのお礼

「su user」とすることで解決いたしました。
仰る通り、.profile中にOpenWindowのモジュールを実行しているようでした。

ありがとうございました。

お礼日時:2005/08/17 15:19

アドバイスレベルですが、もう1つ。


"S99testsh" と書かれていますが、"S99test.sh"ではないですよね。
("."のある、なし)

S99testsh の場合、 /sbin/sh /etc/rc3.d/S99test.sh start で実行されますが、
S99test.sh の場合、 . /etc/rc3.d/S99test.sh と実行され、"start" が付加されません。

どのように動作するかは、view /etc/rc3 で見てください。
    • good
    • 0
この回答へのお礼

「.」のあるなしで動作が変わるのですね…。
参考になります。

S99testshで、「.」はありません。
start付きで実行されているようです。

アドバイスありがとうございました。

お礼日時:2005/08/17 11:38

you-mさんの/tmp/errorlog が作成されていなかったら・・・。



>/etc/rc0.dにtestshに対しK99testshの名称でシンボリックリンクを作成、
>/etc/rc3.dにtestshに対しS99testshの名称でシンボリックリンクを作成しました。

”作成”が気になります。

sh /etc/rc3.d/S99testsh start で手動実行できますか?
    • good
    • 0
この回答へのお礼

アドバイスありがとうございます。
sh /etc/rc3.d/S99testsh start で実行できました。
やはりOS起動・停止時に問題があるように思います。

お礼日時:2005/08/17 10:18

問題の切り分け方としては、なかなか素晴らしいですね。


トラブルシューティングのセンスがありそうです。

そこまで、切り分けが出来ているのであれば、もう一つ調査しましょう。

su - user -c "rm /export/home/user/test/iii.txt" > /tmp/errorlog 2>&1

のようにして、何か予想外のエラーが出ていないか確認しましょう。

ひょっとすると、suが’command not found’とかになっている可能性もありますよね。

それで何も出ていないなら、中身のrmコマンドのリダイレクトです。

ご参考までに。

この回答への補足

su - user -c "rm /export/home/user/test/iii.txt" > /tmp/errorlog 2>&1
でログを取りました。
以下がその内容です。

Sun Microsystems Inc. SunOS 5.8 Generic Patch February 2004

Starting OpenWindows in 5 seconds (type Control-C to interrupt)
/dev/fb: No such file or directory
/dev/fb: No such file or directory
Graphics Adapter device /dev/fb is of unknown type

Fatal server error:
InitOutput: Error loading module for /dev/fb

/usr/openwin/bin/xinit: Server error.
^L

ログを見るとなにやら”OpenWindows ”するときに、「/dev/fb」が無いので、ロードできない、
というようなエラーと読めます。
どのようにすれば解決できますでしょうか?

詳しくないので良く分からないのですが、
OpenWindowsとはGUIのことでしょうか?
ちなみに当方のサーバー(Sun Fire v100)は
ディスプレイをつなげられないタイプですので、
GUIは特に必要無いかと思います。

unix系初心者で不明点ばかりですが、
ご教授よろしくお願いします。

補足日時:2005/08/17 10:48
    • good
    • 0
この回答へのお礼

「> /tmp/errorlog 2>&1」で
結果を出力できるのですね。
unix初心者ですので知りませんでした・・・。
大変参考になります。
ありがとうございます。

本日は帰宅してしまったため、
また明日にでも試してみます。

お礼日時:2005/08/16 21:35

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