武藤健志さま。 コメントありがとうございました。アドバイスに従い、以下の2点 を試みました。 1.アプリケーションプログラム(intserver_functionおよびu-server_b)の格納位 置を/usr/localに変更。 2.intserver_functionの起動スクリプトで ./intserver_function のあとsleepを 入れる。 以下はこれに伴う起動スクリプトの主な変更箇所の抜粋です。 ① /etc/init.d/intserver_function PATH=/usr/local case "$1" in start) cd /usr/local ./intserver_function sleep 2s ;; ② /etc/init.d/tcppipe case "$1" in start) cd /usr/local tcpdump -Xn -s 1600 -l | ./u-server_b 2000 ;; しかし結果は、変更以前となんら変わりません。intserver_functionは起動されイベ ント待ちとなっているが tcppipeのほうは起動された形跡がありません。以下はps ax の実行結果のうち、 intserver_functionの起動 以降の抜粋になります。 3498 ? Ss 0:00 /usr/sbin/cron 3512 ? S 0:00 /bin/sh /etc/rc2.d/S90intserver_function start 3513 ? S 0:00 ./intserver_function 3523 ? Ss 0:01 x-session-manager 3568 ? S 0:00 /usr/bin/uim-xim 3569 ? S 0:00 /bin/sh /etc/gdm/Xsession default 3573 ? S 0:00 /usr/lib/uim/uim-helper-server 3574 ? Ss 0:00 /usr/bin/ssh-agent /usr/bin/dbus-launch --exit-with-session x-session-manager 3577 ? S 0:00 /usr/bin/dbus-launch --exit-with-session x-session-manager 3578 ? Ss 0:00 /usr/bin/dbus-daemon --fork --print-pid 4 --print-address 6 --session 3580 ? S 0:01 /usr/lib/libgconf2-4/gconfd-2 5 3583 ? S 0:00 /usr/bin/gnome-keyring-daemon 3585 ? Ss 0:00 /usr/lib/bonobo-activation/bonobo-activation-server --ac-activate --ior-output-fd=18 3587 ? Sl 0:00 /usr/lib/control-center/gnome-settings-daemon --oaf-activate-iid=OAFIID:GNOME_SettingsDaemon --oaf-ior-fd=26 3592 ? Ss 0:01 /usr/bin/metacity --sm-client-id=default0 3604 ? Ssl 0:01 gnome-panel --sm-client-id default1 3606 ? Ssl 0:01 nautilus --no-default-window --sm-client-id default2 3610 ? S 0:01 /usr/lib/gnome-panel/wnck-applet --oaf-activate-iid=OAFIID:GNOME_Wncklet_Factory --oaf-ior-fd=30 3612 ? Ss 0:00 vino-session --sm-client-id default5 3615 ? Ss 0:00 bluetooth-applet 3617 ? Ss 0:00 update-notifier 3618 ? Ss 0:00 gnome-volume-manager --sm-client-id default4 3620 ? Sl 0:00 /usr/lib/gnome-vfs-2.0/gnome-vfs-daemon --oaf-activate-iid=OAFIID:GNOME_VFS_Daemon_Factory --oaf-ior-fd=34 3624 ? Ss 0:00 nm-applet --sm-disable 3630 ? Ss 0:00 gnome-cups-icon --sm-client-id default3 3631 ? S 0:00 uim-toolbar-gtk 3634 ? S 0:00 /usr/lib/gnome-applets/mixer_applet2 --oaf-activate-iid=OAFIID:GNOME_MixerApplet_Factory --oaf-ior-fd=36 3636 ? S 0:00 /usr/lib/nautilus-cd-burner/mapping-daemon 3647 ? Ss 0:00 gnome-power-manager 3652 ? S 0:00 /usr/lib/gnome-panel/clock-applet --oaf-activate-iid=OAFIID:GNOME_ClockApplet_Factory --oaf-ior-fd=40 3654 ? S 0:00 /usr/lib/gnome-panel/notification-area-applet --oaf-activate-iid=OAFIID:GNOME_NotificationAreaApplet_Factory --oaf- 3658 ? S 0:00 /usr/lib/notification-daemon/notification-daemon 3663 ? Ss 0:00 gnome-screensaver 3678 ? Sl 0:01 gnome-terminal 3679 ? S 0:00 gnome-pty-helper 3682 pts/0 Ss 0:00 bash 3685 ? S 0:00 /usr/lib/uim/uim-candwin-gtk 3706 pts/0 S 0:00 su 3707 pts/0 S 0:00 bash 3712 pts/0 R+ 0:00 ps ax ここで、 3512 ? S 0:00 /bin/sh /etc/rc2.d/S90intserver_function start 3513 ? S 0:00 ./intserver_function となっていますから続いて、 3514 ? S 0:00 /bin/sh /etc/rc2.d/S98tcppipe start 3515 ? S 0:00 tcpdump -Xn -s 1600 -l 3515 ? S 0:00 ./u-server_b 2000 とでもなってくれることが期待値であった訳ですが、そうなりません。ここで、 /bin/sh /etc/rc2.d/S90intserver_function start とあるので、もしかしてtcppipeのほうをintserver_functionと同じRUNLEVEL 2 で動 かそうとするのがまずいかと疑い update-rc.d tcppipe defaults 98 ではなく update-rc.d tcppipe start 98 3 . stop 98 0 1 6 . と、起動時のRUNLEVELを3とするのを以前試みましたが、やはり起動されません。 なお、
intserver_functionはfork&execするプログラムなのでしょうか。それとも バックグラウンドプロセス起動を並べたシェルスクリプトでしょうか。
実行プログラム名とシェルスクリプト名を同じintserver_functionとしてしまったの でややこしく なりました。シェルスクリプトintserver_functionが ./intserver_function としてアプリケーションintserver_functionを起動しようとしています。 情報が不足・未整理で恐縮ですが、さらなるアドバイスをいただければ幸甚に存じま す。 宜しくお願いいたします。
武藤@Debianぷろじぇくとです。 At Thu, 11 Sep 2008 05:59:06 +0900, miya wrote:debian起動時、ふたつのアプリケーションを自動起動するため、起動スクリプトを作成しました。 それぞれを単独でテストしたところどちらも正常に起動されるのですが両方だと片方が起動され ません。何かが競合しているものと思われますが、究明できずにいます。 以下に、起動スクリプトの内容と登録方法などを記述します。① /etc/init.d/intserver_function start) cd /usr/bin ./intserver_functionintserver_functionはfork&execするプログラムなのでしょうか。それとも バックグラウンドプロセス起動を並べたシェルスクリプトでしょうか。 いずれにせよ、状況的にはintserver_functionの準備が整わないうちにこのinit スクリプトが終了し、tcppipeのほうが起動してしまっているんじゃないかと思 います。 intserver_function側で準備ができるまで終了しないようにするか、適当な時間 だけsleepを./intserver_functionの後に入れる必要がありそうです。リブートした後 ps ax で確認したところintserver_functionは起動されイベント待ちとなっているが tcppipe(tcpdumpおよびu-server_b)は起動されていません。 作成したふたつのアプリケーション(intserver_functionおよびu-server_b)はそれぞれ /usr/bin に格納しています。パッケージ管理システムによらないファイルは、/usr/local/以下に置くべきです。-- 武藤 健志@ kmuto @ kmuto.jp Debian/JPプロジェクト (kmuto@debian.org, kmuto@debian.or.jp) 株式会社トップスタジオ (kmuto@xxxxxxxxxxxxxxx) URI: http://kmuto.jp/ (Debianな話題など) __________ NOD32 3296 (20080724) 情報 __________ このメールはNOD32によって検査済みです。 http://canon-sol.jp